服务器端:
package com.socket;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerSocketNet extends Thread{
private ServerSocket serverSocket;
public ServerSocketNet(int port) throws Exception{
this.serverSocket = new ServerSocket(port);
this.serverSocket.setSoTimeout(6000);
}
public static void main(String[] args) throws Exception{
//服务器端开通端口7777,进行服务监听
ServerSocketNet serverSocketNet = new ServerSocketNet(7777);
serverSocketNet.run();
}
@Override
public void run(){
while(true){
System.out.println("等待远程连接,端口号为:"+serverSocket.getLocalPort());
//开始监听
try {
Socket socket = this.serverSocket.accept();
System.out.println("连接远程主机地址:"+socket.getRemoteSocketAddress());
InputStream inputStream = socket.getInputStream();
DataInputStream dataInputStream = new DataInputStream(inputStream);
String read = dataInputStream.readUTF();
System.out.println("read:"+read);
DataOutputStream dataOutputStream = new DataOutputStream(socket.getOutputStream());
dataOutputStream.writeUTF("谢谢连接我:" + socket.getLocalSocketAddress() + "\nGoodbye!");
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
客户端:
package com.socket;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class SocketClient {
public static void main(String[] args) throws Exception {
Socket socket = new Socket("127.0.0.1", 7777);
OutputStream outputStream = socket.getOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
dataOutputStream.writeUTF("Hello from "+socket.getLocalSocketAddress());
InputStream inputStream = socket.getInputStream();
DataInputStream dataInputStream = new DataInputStream(inputStream);
System.out.println("服务器响应:"+dataInputStream.readUTF());
socket.close();
Socket socket1 = new Socket("127.0.0.1", 7777);
OutputStream outputStream1 = socket1.getOutputStream();
DataOutputStream dataOutputStream1 = new DataOutputStream(outputStream1);
dataOutputStream1.writeUTF("Hello from "+socket1.getLocalSocketAddress());
InputStream inputStream1 = socket1.getInputStream();
DataInputStream dataInputStream1 = new DataInputStream(inputStream1);
System.out.println("服务器响应:"+dataInputStream1.readUTF());
socket1.close();
}
}