目录:
1.什么是套接字?
2.如何创建套接字?
3.如何创建简单的服务器?
4.如何创建简单的客户端?
一 什么是套接字
很多教材中会讲解什么是套接字,这里我讲一下我的理解。我们想和另一个大楼的某个房间的美眉建立联系,可选的方案是知道对方的电话直接呼叫,另外就是利用对方的地址(大楼和房间)写信给她,这个就是基本的通信。其实这个过程和利用套接字建立联系是有很大相似的。我们知道IP可以标记一台主机,而端口则是标记具体的服务,套接字是主机对面服务接口的抽象,它屏蔽了内部的具体实现,我们可以利用它与另一个进程(不管是否在一台主机上)建立通信。
二 如何建立套接字
不管是linux还是windows都提供了一系列的socket函数,而套接字可以socket创建,函数的原型为int socket(int domain,int type,int protocal),domain一般会取AF_INET,这表示采用因特网域,type类型一般会取SOCK_STREAM和SOCK_DGRAM两种类型,分别对应着字节流和数据报两种类型。
三 如何创建简单的服务端
服务端犹如那个美眉,我们要想联系知道她的地址。一般开放的美眉会向开开放自己的地址,等着帅哥过来主动联系,美眉为了隐藏自己会用自己的小号与帅哥联系,而且可能还要保存着帅哥的信息以便以后可以继续联系。服务端会按照以下的方式进行创建:
(1) 创建套接字 socket
(2) 这个套接字命名,即绑定地址:sockaddr_in bind
(3) 建立等待客户端连接的队列,设置套接字为监听状态 listen
(4) 接受客户端的连接 accept
(5) 关闭连接 close
备注:accept会返回一个套接字,服务端会利用这个套接字与客户端进行联系。
等走完以上几个步骤后,一个简单的服务端程序就可以运行了啊,我们帅哥(客户端)就可以主动的联系我们的美眉了啊。
四 如何创建简单的客户端
客户端就是那个要主动联系美眉的角色,没有什么内涵,也不需要添加太多的功能,客户端可以按照一下流程就可以搞定:
(1) 创建套接字 socket
(2) 连接服务端 connect
(3) 关闭连接 close
通过以上流程,客户端就可以搞定了啊,客户端和服务端两者就可以畅快的通信了啊。