flex Scocket通信

今天下午研究了一下 flash 里的 XMLSocket 类遇到了小小问题,所以把它发了出来
flash
代码:

var mySocket:XMLSocket = new XMLSocket();
//
本地地址,端口 5000
mySocket.connect("localhost", 5000);
//
事件
mySocket.onConnect = function(myStatus)
{
if (myStatus)
{
  trace("
连接成功 !");
  //
发送信息
  mySocket.send("soda" + " \0");
  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" + "?");
  os.flush();
  os.close();
  System.out.println("
内容 :" + name);
}
}

-----------------------------------------------------------
值得注意的是 mySocket.send("soda" + "?"); 这句话
如果后面没有加 " ",java 服务器是不能马上接受信息的。
因为 br.readLine() 是接受一行的,如果没有 " " 的话,
它找不到换行符号,就会在那里一直监听等待,不会响应

你可能感兴趣的:(java,socket,Flex,OS,Flash)