需要使用到两个类
,
来编写
TCP
协议的
CS
程序
.
1.ServerSocket
搭建服务器
2.Socket
搭建客户端
两方使用
socket(
套接字
,
通信端点
)
进行交流
ServerSocket
用于创建服务器
.
创建完毕后
,
会绑定一个端口号
.
然后此服务器可以等待客户端连接
.
每连接一个客户端
,
服务器就会得到一个新的
Socket
对象
,
用于跟客户端进行通信
.
Socket
是两台计算机之间通信的端点
,
是网络驱动提供给应用程序编程的一种接口 一套标准
,
一种机制
.
常用构造方法:
ServerSocket(int port); ****
创建一个基于
TCP/IP
协议的服务器
,
并绑定指定的端口号
.
注意
:
参数
port
的范围是
: 0-65535 (
建议
1025-65535)
Socket(String ip,int port) ****
创建一个套接字
,
并连接指定
ip
和端口号的 服务器
.
参数
1.
服务器的
ip
地址
参数
2.
服务器软件的端口号
..
常用方法:
搭建服务器
public static void main(String[] args) throws IOException {
//搭建服务器
ServerSocket server = new ServerSocket(55565);
System.out.println("服务器启动完毕");
//等待客户端连接
Socket socket=server.accept();
System.out.println("一个客户端连接了");
OutputStream os = socket.getOutputStream();
PrintStream ps=new PrintStream(os);
ps.println("欢迎连接");
InputStream io = socket.getInputStream();
BufferedReader buf = new BufferedReader(new InputStreamReader(io));
String text = buf.readLine();
System.out.println("服务器接到消息:"+text);
System.out.println("程序运行结束");
}
搭建客户端
public static void main(String[] args) throws IOException {
//搭建客户端
Socket socket = new Socket("127.0.0.1",55565);
InputStream in = socket.getInputStream();
BufferedReader bu = new BufferedReader(new InputStreamReader(in));
String text = bu.readLine();
System.out.println("客户端接到消息:"+text);
OutputStream ou = socket.getOutputStream();
PrintStream ps=new PrintStream(ou);
ps.println("服务器你好!");
}
客户端中加入多线程
while (true){
Socket socket=server.accept();
new Thread(){
@Override
public void run() {
try {
InputStream is = socket.getInputStream();
OutputStream op = socket.getOutputStream();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
System.out.println("一个客户端连接了");
}