package com.lin;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class MyTCPServer {//服务器端程序
private BufferedReader reader;// 创建BufferedReader对象
private ServerSocket server;// 创建服务套接字对象
private Socket socket;
public void getServer() {
try {
server = new ServerSocket(8998);
System.out.println("服务器套接字已创建成功");
while (true) {
System.out.println("等待客户机的连接");
socket = server.accept();//等待客户机的连接,进入等待状态
//当客户端能够连接上之后,读取客户端传过来的东西
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
getClientMessage();
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void getClientMessage() {
try {
while (true) {
if (reader.ready()) {
// 获得客户端信息
System.out.println("客户机:" + reader.readLine());
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (reader != null)
reader.close();
if (socket != null)
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
MyTCPServer tcp = new MyTCPServer();
tcp.getServer();
}
}
客户端程序
package com.lin;
import java.io.OutputStream;
import java.net.Socket;
public class MyTCPClient {
public static void main(String[] args) {
Socket s = null;
OutputStream os = null;
try {
// 建立连接
s = new Socket("127.0.0.1",8998);//在客户端建立连接要指定ip 和要链接的服务器端口
os = s.getOutputStream();//这里 的OutputStream是从Socket里获取的
//向服务器发送东西
os.write("1hahaha".getBytes());
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
if(s!=null)
s.close();
if(s!=null)
s.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
先启动服务器端程序,再启动客户端程序