socket 发送信息和接收信息 多用于银行通信
2012-03-14 03:07
183 查看
/** * 发送请求报文 * 注:不可以关闭流 否则会关闭对应的socket */ public static void send(Socket socket, byte[] msg) { DataOutputStream out=null; try { out = new DataOutputStream((socket.getOutputStream())); out.write(msg); out.flush(); } catch (IOException e) { e.printStackTrace(); } } /** * 接收服务器返回的报文 * 注:不可以关闭流 否则会关闭对应的socket */ public static byte [] incept(Socket socket) { byte [] head = new byte[4]; byte [] body=null; try { BufferedInputStream bufIn = new BufferedInputStream(socket.getInputStream()); bufIn.read(head); int len1 = Integer.parseInt(new String(head)); body = new byte[len1]; bufIn.read(body); } catch (IOException e) { e.printStackTrace(); } return body; }
简单的socket 示例
Socket service ServerSocket ss = new ServerSocket(8099); System.out.println("服务器已启动,等到客户端的连接..."); Socket socket = ss.accept(); // 服务器收到客户端的数据后,创建与此客户端对话的Socket DataInputStream in = new DataInputStream(socket.getInputStream()); System.out.println("服务器接受到客户端的连接请求:" + in.readUTF());// 用于接收客户端 发来的数据的输入流 DataOutputStream out = new DataOutputStream(socket.getOutputStream()); String sb="hello client"; out.writeUTF(sb.toString());//服务器响应给客户端 socket.close(); ss.close(); Socket client Socket socket = new Socket(); socket.connect(new InetSocketAddress("localhost",8099),1000); socket.setSoTimeout(400); System.out.println("客户端正在连接..."); DataOutputStream out = new DataOutputStream(socket.getOutputStream()); String result = "hello service"; out.writeUTF(result);//把报文结构发送到服务器端 DataInputStream in = new DataInputStream(socket.getInputStream()); String res = in.readUTF();//读取服务器端返回xml System.out.println("读取服务器返回数据:"+res); socket.close();
TCP/IP 通信又叫socket 通信,是基于TCP/IP协调面向连接的一个数据传输技术。
是属于OSI国际标准的传输层,三次握手 提供数据,有序,安全,端到端的传输和接收。
它有三个主要协议:传输控制协议(TCP),用户数据包协议(UDP)和互联网控制消息协议(ICMP)。
通过socket 连接,建立起一条网络线路,数据就可以流通了。包括短连接,和长连接
两种情况,短连接:在每一次建立连接传输完报文后,就会断开,
长连接:在每一次建立连接传输完报文后,并不会断开,需要不断的发送检测包来保持socket
线程的连接状态。
java语言已经对socket 通信做了很好的封装,在java.net.*包下。
建立socket 通信需要如下步骤:
服务器端:
第一步:服务器开启服务监听到某个端口。
第二步:服务器接收客户端连接
第三步:读取客户端请求报文
第四步:返回报文到客户端
客户端:
第一步:建立socket通信,访问某一个服务器IP和监听端口
第二步:发送请求报文
第三步:读取服务器端返回的数据报文
相关文章推荐
- socket 发送信息和接收信息 多用于银行通信
- C#winform UDP通信 发送和接收信息
- 关于socket通信的理解,socket连接通过IP+端口号的方式,那么如果两个服务器端的应用在同一台机器上,并且位于同一个tomcat容器下,那么岂不是两个服务器都收到了客户端发送的信息
- PHP-Socket服务端客户端发送接收通信实例详解
- Java编写一个简单的TCP通信程序。服务器发送一条字符串,客户端接收该信息并显示。
- c++和java在socket通信过程中发送和接收函数的问题
- PHP-Socket服务端客户端发送接收通信实例详解
- 局域网聊天工具(多线程),支持客户端与客户端间通信,服务器负责信息的接收与发送
- 网上支付-用于与银行SOCKET通信的程序
- socket接收发送信息
- Socket编程中如何发送结构体,拼接多次接收消息及获取通信双方地址
- 局域网聊天工具(多线程),支持客户端与客户端间通信,服务器负责信息的接收与发送(client)
- ServerSocket和Socket建立通信(客户端发送消息服务器接收输出)
- 网上支付-用于与银行SOCKET通信的程序
- PHP-Socket服务端客户端发送接收通信实例详解
- ServerSocket和Socket建立通信(客户端发送消息服务器接收并返回到客户端接收输出)
- Android之Socket通信&&Handler 发送接收多条数据
- 为什么ServerSocket接收不到客户端Socket发送的信息?
- ServerSocket和Socket建立通信(服务器和客户端循环接收发送)
- ServerSocket和Socket建立通信(客户端发送消息服务器接收并返回到客户端接收输出)