| Java与flash的TCP通讯(XMLSocket类) |
|
Java与flash的TCP通讯(XMLSocket类) |
| 作者:佚名 来源:不详 更新:2007-1-13 21:00:15 错误报告 我要投稿 |
今天下午研究了一下flash里的XMLSocket类遇到了小小问题,所以把它发了出来 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); } } ----------------------------------------------------------- 值得注意的是mySocket.send("soda" + "\n");这句话 如果后面没有加"\n",java服务器是不能马上接受信息的。 因为br.readLine()是接受一行的,如果没有"\n"的话, 它找不到换行符号,就会在那里一直监听等待,不会响应 (汗~~~我自己就是在这里被卡了很久)
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |