网络编程——网络基础(二)
Socket是何方妖怪? 1.socket与进程的关系 1).socket与进程间的关系:socket 用来让一个进程和其他的进程互通信息(IPC),而Socket接口是TCP/IP网络的API接口函数。 2).进程间通信(本机内) 进程间通信(不同计算机,要联网) 2、socket与文件的关系——如何理解socket是种特殊的I/O? 1)Socket最先应用于Unix操作系统,如果了解Unix系统的I/O的话,就很容易了解Socket了,因为Socket数据传输其实就是一种特殊的I/O。 2)可对其进行文件操作 3)有文件描述符。而文件描述符的本质是一个非负整数。只是用于区分。类似的还有进程ID。 3.服务器端口与连接个数的关系 1)服务端在8088上监听,然后生成一个新的socket与client通讯。(注意:服务器端监听端口是 不变的,但socket连接可以一直生成,一个线程对应一个socket.) 同一时刻,一个端口只能建立一个连接。 在一个端口监听,但是在监听端口的同时,生成一个等待队列,每一个来自客户端的连接都会送入等待队列中,服务器利用一定的算法进行选择相应的连接请求处理,所以在一个端口可以监听多各请求嘛。如果同时的连接过多,服务器相应每个连接的时间就会相应的变长。就会变慢。 2)QQ的实现方法就是在登陆的时候告诉服务器你已经登陆,发送消息的时候