socket是基于TCP和UDP协议的高层接口定义了收发数据的格式Java的TCP服务中使用的Socket是一种流机制即对于编程人员来说处理socket只需要从Socket中获取流然后可以像处理本地流一样来进行数据的收发
例如
DataOutputStream outToClient =new DataOutputStream(socket
getOutputStream());
BufferedReader inFromClient =new BufferedReader(new InputStreamReader(socketgetInputStream()));
String requestMessageLine = inFromClientreadLine();
outToClientwriteBytes(requestMessageLine);
Net的Socket机制提供了两种实现一种是直接用Socket类一种是使用对Socket再次封装的TcpClientUdpClient类来实现Net提供了一种统一的收发机制NetworkStream
TcpClient和Socket的底层都是通过NetworkStream来传送数据的它们都可以产生一个NetworkStream例如
TcpClient client = server
AcceptTcpClient();NetworkStream stream = client
GetStream();
Net的socket和Java的socket在收发数据上的最大不同是Java的socket可以像普通的流一样操作Net的socket有多种实现方法可以直接用Socketsend()来发也可以用NetwordStream来发送也可以用TcpClient来发送但是每种实现在收发数据的时候都是通过显示的对缓沖区进行操作例如
byte[] datasize = new byte[]; networkStreamWrite(datasize);socketSend(datasize datasizeLength );