基于TCP/IP的Socket网络编程
TCP协议:它是一种面向连接的可靠协议。
特点:传输数据安全稳定,数据不会丢失,但是速度较慢。
TCP 协议类似于使用手机打电话,可以保证把信息传递给别人
服务器端:
(1)创建服务器套接字
(2)等待客户端连接请求,一旦接收请求,将和客户端建立连接,返回一个Socket套接字
(3)使用套接字获取输入流和输出流
(4)通信:使用输入流读取接收到的信息,使用输出流写发送的信息。
(5)关闭Socket套接字
(6)关闭服务器套接字
package com.socket;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketServer {
public static void main(String[] args) {
try {
// (1)创建服务器套接字,后面的“8888”为端口号,客户端需要知道这个端口才能进行请求
ServerSocket ss = new ServerSocket(8888);
// (2)等待客户端连接请求,一旦接收请求,将和客户端建立连接,返回一个Socket套接字
Socket socket = ss.accept();
// (3)使用套接字获取输入流和输出流对象
InputStream input = socket.getInputStream();
// (4)通信:使用输入流读取接收到的信息,使用输出流写发送的信息。
byte [] b = new byte[1024];
int i= input.read(b);
System.out.println(new String(b));
input.close();
// (5)关闭Socket套接字
socket.close();
// (6)关闭服务器套接字
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端:
(1)创建套接字,向服务器发送连接请求(需要服务器的IP和端口号),和服务器建立连接。
(2)使用套接字获取输入流和输出流
(3)通信:使用输入流读取接收到的信息,使用输出流写发送的信息。
(4)关闭Socket套接字
package com.socket;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
/**
* TCP/IP通信
*
*/
public class SocketClient {
public static void main(String[] args) {
try {
// (1)创建套接字,向服务器发送连接请求(需要服务器的IP和端口号),和服务器建立连接。
Socket socket = new Socket("localhost" , 8888);
// (2)使用套接字获取输入流和输出流对象
OutputStream out = socket.getOutputStream();
// (3)通信:使用输入流读取接收到的信息,使用输出流写发送的信息。
out.write("你好,server".getBytes());
// (4)关闭Socket套接字
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
版权声明:本文为qq_45924373原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。