Java与flash的TCP通讯

摘要:
);}};// 接收信息事件mySocket。onData=函数{trace;}--------Java代码:importjava。净额*;导入java.io.*;PublicclassServer{publicstatic void mainthrowsException{//创建服务器ServerSockets=newServerSocket;System.out.println(“正在等待连接…”);//创建字符流BufferedReaderbr=newBufferedReader;System.out.pintln(”正在获取BufferedReader。。。);//等待接收信息Stringname=br。readLine()//发送信息PrintWriteros=newPrintWriter;操作系统。打印ln;操作系统。flush();操作系统。close();System.out。println;}}-------------------值得注意的是,os println;如果这句话后面没有“0”,则Java服务器不能立即接受信息。因为br ReadLine()接受一行。如果没有“n”,它就找不到新的线路符号,并且会在那里倾听和等待,不会做出响应




flash代码:
var mySocket:XMLSocket = new XMLSocket();
//本地地址,端口5000
mySocket.connect(”localhost”, 5000);
//事件
mySocket.onConnect = function(myStatus)
{
if (myStatus)
{
trace(”连接成功!”);
//发送信息
mySocket.send(”soda” + “\n”);
trace(”发送成功!”);
}
else
{
trace(”连接失败!”);
}
};
//接受信息事件
mySocket.onData = function (msg:String)
{
trace(”接受到的内容:” + msg);
}
————————————————–
java代码:
import java.net.*;
import java.io.*;
public class Server
{
public static void main(String[] args) throws Exception
{
//建立服务器(TCP)
ServerSocket ss = new ServerSocket(5000);
System.out.println(”等待连接…….”);
Socket sk = ss.accept();
System.out.println(”连接成功……”);
//建立字符流
BufferedReader br = new BufferedReader(new InputStreamReader(sk.getInputStream()));
System.out.println(”获取BufferedReader……”);
System.out.println(”获取里面的内容……”);
//等待接受信息
String name = br.readLine();
//发送信息
PrintWriter os = new PrintWriter(sk.getOutputStream());
os.println(”soda,soda” + “\0″);
os.flush();
os.close();
System.out.println(”内容:” + name);
}
}
———————————————————–
值得注意的是os.println(”soda,soda” + “\n”);这句话
如果后面没有加”\0″,java服务器是不能马上接受信息的。
因为br.readLine()是接受一行的,如果没有”\n”的话,
它找不到换行符号,就会在那里一直监听等待,不会响应

免责声明:文章转载自《Java与flash的TCP通讯》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇利用C#的反射机制动态调用DLL类库python | TCP 三次握手和四次挥手图解(有限状态机)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

winform 获取当前程序所在目录。

string exePath = new DirectoryInfo(Assembly.GetExecutingAssembly().ManifestModule.FullyQualifiedName).Parent.FullName; string apppath = System.IO.Path.GetDirectoryName(System.Refl...

C#全局键盘监听(Hook)

一.为什么需要全局键盘监听? 在某些情况下应用程序需要实现快捷键执行特定功能,例如大家熟知的QQ截图功能Ctrl+Alt+A快捷键,只要QQ程序在运行(无论是拥有焦点还是处于后台运行状态),都可以按下快捷键使用此功能... 这个时候在程序中添加键盘监听肯定不能满足需求了,当用户焦点不在App上时(如最小化,或者用户在处理其它事物等等)键盘监听就失效了 二....

android 系统重启与关机:java 代码实现

在应用层如何通过代码实现 android 系统的重启,分享给大家。 这篇博客是在 android 系统开发的基础之上进行实践的,所以如果你是纯粹的 app 开发,可能要让你失望了。 该代码在真机上测试成功,在模拟器上面测试失败。 在 linux 下面,重启 pc,非 root 用户需要执行 sudo reboot,所以在 android 下重启机器也需...

java基础1-变量+包机制+javadoc命令

1.sout+tab:System.out.println的快捷键 2.强制转换:(高转低) 由低到高:byte,short,char→int→long→float→double 运算时,先转为相同类型再进行计算 //强制转换(类型)变量名 int i=128; byte b = (byte)i; System.out.println(i);/...

System.InvalidOperationException: 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。

今天在写导入Excel表格的代码,运行时却报异常,异常信息: System.InvalidOperationException: 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。 解决方案:下载2007 Office system 驱动程序:数据连接组件安装http://download.microsoft.com/dow...

尝鲜党:Nexus5、6刷安卓M教程

说明:   进入recovery的命令:adb reboot recovery        进入bootloader的命令:adb reboot bootloader 概述 F:Nexus5AndroidMhammerhead-MPZ44Q>fastboot flash bootloader bootloader bootlo ader-hamm...