Socket通信简单例子

来源:互联网 发布:java一年工作经验 编辑:程序博客网 时间:2024/05/22 02:15

示例:

服务端Server:

package com.test;import java.io.IOException;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;public class Server {public static void main(String[] args) throws IOException {ServerSocket server = new ServerSocket(8888);Socket client = server.accept();OutputStream out = client.getOutputStream();String msg = "Hello";out.write(msg.getBytes());client.close();}}



用程序完成telnet功能:(客户端Client)

package com.test;import java.io.IOException;import java.io.InputStream;import java.net.Socket;import java.net.UnknownHostException;public class Client {public static void main(String[] args) throws UnknownHostException, IOException {Socket socket = new Socket("127.0.0.1", 8888);InputStream in = socket.getInputStream();byte[] buffer = new byte[in.available()];in.read(buffer);String msg = new String(buffer);System.out.println("收到响应信息:"+msg);}}

输出:

收到响应信息:Hello


-------------------------------------------------------------------------------------------------------------------------------------------------------



下面给一个更全面的例子:

Server:

package com.test;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class Server {public static int PORT = 8888;public static void main(String[] args) throws IOException {ServerSocket server = null;Socket client = null;BufferedReader br = null;PrintWriter pw = null;try {server = new ServerSocket(PORT);client = server.accept();br = new BufferedReader(new InputStreamReader(client.getInputStream()));pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())));while (true) {String msg = br.readLine();if (msg.equals("END")) {break;}System.out.println("收到Client消息:" + msg);Thread.sleep(1000);pw.println("Message Received");pw.flush();}} catch (Exception e) {e.printStackTrace();} finally {System.out.println("Server Close.....");try {br.close();pw.close();client.close();server.close();} catch (IOException e) {e.printStackTrace();}}}}

最终输出:

收到Client消息:Msg 0
收到Client消息:Msg 1
收到Client消息:Msg 2
收到Client消息:Msg 3
收到Client消息:Msg 4
收到Client消息:Msg 5
收到Client消息:Msg 6
收到Client消息:Msg 7
收到Client消息:Msg 8
收到Client消息:Msg 9
Server Close.....

Client:

package com.test;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.Socket;import java.net.UnknownHostException;public class Client {public static void main(String[] args) throws UnknownHostException, IOException {Socket socket = null;BufferedReader br = null;PrintWriter pw = null;try {socket = new Socket("127.0.0.1", Server.PORT);System.out.println("Socket = " + socket);br = new BufferedReader(new InputStreamReader(socket.getInputStream()));pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())));for (int i = 0; i < 10; i++) {pw.println("Msg " + i);pw.flush();String str = br.readLine();System.out.println("收到Server响应:" + str);}pw.println("END");pw.flush();} catch (Exception e) {e.printStackTrace();} finally {try {System.out.println("Client close......");br.close();pw.close();socket.close();} catch (IOException e) {e.printStackTrace();}}}}
最终输出:

Socket = Socket[addr=/127.0.0.1,port=8888,localport=54091]

收到Server响应:Message Received
收到Server响应:Message Received
收到Server响应:Message Received
收到Server响应:Message Received
收到Server响应:Message Received
收到Server响应:Message Received
收到Server响应:Message Received
收到Server响应:Message Received
收到Server响应:Message Received
收到Server响应:Message Received
Client close......

1 0
原创粉丝点击