前一段时间做过JAVA的Socket客户端转换为C#的Socket客户端的工作,最近开发的项目又需要用Java代码通过Socket的方式作为客户端去请求服务端交互数据的功能,这次对.NET和Java的一些常用技术点做个记录,由于没有涉及开发大并发量的socket服务器端,对分包、粘包和一些高性能的要求都没有分析过,本篇文章只以它们之间的常用使用方法以及Java的Socket转换为C#代码的方法作一定的记录。
一、Java Socket
在JDK1.4之前,java只能以同步的方式创建socket,异步只能用多线程方式的异步,java.net.ServerSocket 包可以创建服务端的socket处理器,客户端通过java.net.Socket 连接过来如:
private ServerSocket server = null;
private Socket socket = null;
InetAddress address = InetAddress.getByName("127.0.0.1");
server = new ServerSocket(3000,10000,address);
//监听窗口,等待连接
socket = server.accept();
这样服务端ServerSocket的accept()方法就会同步阻塞等待客户端连接,在收到客户端socket连接请求后,就会执行后续操作。服务端通过socket.getInputStream()来获取客户端输入的数据流,通过对socket.getOutputStream()读取流进行回写,返回给客户端信息。Socket客户端可以用:
Socket so = new Socket("