服务端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 socket = server.accept();
OutputStream out = socket.getOutputStream();
String msg = "Hello";
out.write(msg.getBytes());
socket.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......

被折叠的 条评论
为什么被折叠?



