Socket 通讯

1.人通过电话来通信,而程序则通过socket来通信


socket非常类似于电话插座,以一个电话网为例,电话的通话双方相当于相互通信的2个程序,电话号码就是IP地址。任何用户在通话之前,首先要占用一部电话机,相当于申请了一个socket;同时要知道对方的电话号码,相当于对方有一个固定的socket。然后向对方呼叫,相当于发出连接请求。对方假如在场并空闲,拿起电话通,双方就可以正式通话,相当于连接成功。双方通话的过程,是一个方向电话机发出信号和对方电话机接收信号的过程,相当于socket发送数据和从socket接收数据,通话接收,一方挂起电话机相当于关闭socket,撤销连接。

2.通信过程中,互相能理解的规则就称为协议。


3.socket作为通信机制,通常称为“套接字”,用于描述IP地址和端口,是一种通信连的句柄。

4.客户端知道服务器的IP地址(服务器中应用程序的IP都是相同的)即可连接到服务器,但还不能连接到服务器中具体的应用程序。客户端只有同时知道服务器的IP地址和应用程序的  端口号,才能成功连接到服务器中的应用程序。

(客户端找到服务器IP,然后服务器通过应用程序端口号找到应用程序,最后实现客户端和应用程序连接)

5.TCP和UDP协议
TCP相对于UDP协议的好处是:相对安全稳定,不易发生数据丢包,但效率较低。
TCP需要经过 
三次握手:
1)客户端向服务器发送请求
2)服务器回复客户端的请求
3)客户端再此向服务器请求。

UDP:快速,效率高,但不稳定,容易发生数据丢失。(UDP没有向服务器发送请求,直接向服务器发送了数据,故如果服务器处于繁忙状态,会导致无法处理发送的数据)

6.服务端在某个时刻最多能容纳10,当第11人来了只能排队。
若服务器满了,则通过添加服务器,(通过优化代码实现排队等之类的功能以满足需求)。

首先要创建服务器端的监听对象;然后创建Ip地址对象,创建对象保存端口号,然后再创建端口号对象绑定IP和端口号。最后将套接字监听对象绑定到端口号对象,实现对客户端进行监听。

创建线程,然后将创建的前台线程设置为后台线程,在将线程设置为启动状态。

猜你喜欢

转载自www.cnblogs.com/jefy/p/9207410.html