1、在服务器端与客户端通信之前必须先保证服务器连接成功
a、创建一个服务器端程序 :
package com.sunplus.app;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class TcpServer {
private ServerSocket serverSocket = null;
private final int port = 10004;
private static TcpServer instance = null;
static {
instance = new TcpServer();
}
private TcpServer() {
}
public static TcpServer getInstance() {
return instance;
}
public static void main(String[] args) throws Exception {
getInstance().createSocket();
}
private void createSocket() {
try {
serverSocket = new ServerSocket(port); // 设置服务器端口号
getInfo();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 接收客户端数据
*/
private void getInfo() {
try {
Socket socket = serverSocket.accept();
InputStream in = socket.getInputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = in.read(buffer)) != -1) {
System.out.println(new String(buffer, 0, len));
}
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
b、创建一个客户端程序:
package com.sunplus.app;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class TcpClient {
public static void main(String[] args) {
writeData();
}
private static void writeData() {
Socket socket = null;
try {
socket = new Socket("172.20.224.12", 10004);
OutputStream os = socket.getOutputStream();
os.write("Hello".getBytes()); // 向服务器发送数据
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (socket != null)
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}