package 网络编程_189_TCP_Socket通信_原理_练习;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
/**
- Socke通信
- 1.基于tcp协议,面向连接的.建立稳定链接的点对点的通信;实时,快速,安全性高,占用系统资源多,效率低
- 2."请求-相应"模式:Request–Response
-
1).客户端:在网络通讯中,第一次主动发起通信的程序被称作客户端(Client)程序
-
2).服务器:第一次通讯中,等待连接的程序被称作服务器端(Server)
- 3.客户端Socket:发送TCP消息
- 4.服务器端ServerSocket:创建服务器
-
套接字:是一种进程间的数据交换机制.这些进程即可以在同一机器上也可以通过网络连接在不同的机器上
*服务器端
- 1.创建服务器,指定端口 ServerSocket(int port)
- 2.接收客户端的连接,
*/
public class Server {//Server 服务器
public static void main(String[] args) throws IOException {
//创建服务器端
ServerSocket server = new ServerSocket(8888);//不同的协议端口可以重复.同一协议内端口不可以重复;声明异常
//接收客户端连接 ;这个是阻塞式的;
Socket socket = server.accept();//accept接受; accept()侦听并接受到此套接字的连接。
System.out.println("一个客户端建立连接");//在浏览器上输入http://localhost:8888 这只是一个请求
}
}
//----------------------------------
服务器端连接测试
在浏览器上输入http://localhost:8888 这只是一个请求;
控制台
//--------------------------------------------------
package 网络编程_189_TCP_Socket通信_原理_练习;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
/**
-
自己创建客户端:必须指定服务器+端口;此时就在连接
-
1.创建客户端:Socket(String host, int port) 创建一个流套接字并将其连接到指定主机上的指定端口号
-
注意:TCP端口客户端由系统自己内部分配
-
UDP端口两端都需要指定
*/
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
//创建客户端:必须指定服务器+端口;此时就在连接
Socket client = new Socket("localhost",8888);
}
}
//结果---------------------------------------
先运行服务器端
如果出现报错是因为端口被占用;重新关掉就能运行
**
再运行客户端