TCP
客户端
- 建立连接服务器的socket
- 向服务端发送消息
- 关闭连接
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
//TCP客户端
public class TcpClientDemo {
public static void main(String[] args) {
//与服务端创建TCP链接
Socket socket = null;
OutputStream os = null;
//1.获取服务端IP地址与端口
try {
InetAddress serverIP = InetAddress.getByName("127.0.0.1");
int port = 9999;
//2.创建一个socket连接
socket = new Socket(serverIP, port);
//3.发送消息
os = socket.getOutputStream();
os.write("Java网络编程".getBytes());
} catch (Exception e){
e.printStackTrace();
} finally {
//关闭资源
if(socket!=null)
{
try {
socket.close();
} catch (IOException e){
e.printStackTrace();
}
}
}
}
}
服务端
- 建立服务端套接字ServerSocket
- 等待用户连接accept
- 接受客户端发送的消息
- 关闭连接
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
//TCP服务端
public class TcpServerDemo {
public static void main(String[] args) {
ServerSocket severSocket = null;
Socket socket = null;
InputStream is = null;
ByteArrayOutputStream byteArrayOutputStream = null;
//创建服务端Socket
try {
//1.创建地址
severSocket = new ServerSocket(9999);
//2.监听客户端连接请求
socket = severSocket.accept();
//3.读取客户端发送的消息
is = socket.getInputStream();
//4.创建管道流输出内容
byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while((len=is.read(buffer))!=-1){
byteArrayOutputStream.write(buffer,0,len);
}
System.out.println(byteArrayOutputStream.toString());
} catch (IOException e){
e.printStackTrace();
} finally {
//5.关闭资源
try {
byteArrayOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
severSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
运行结果:服务端收到客户端消息,并打印出来
Java网络编程
Process finished with exit code 0