网络编程-----socket()浅谈

 很久没有更新博客了,近期在探究网络编程,在GameServer当中网络编程技术所占用的比例并不是很大,但是又必须要用到,由于小博对这块并不是太懂因此在空闲之余也在研究,好了,不说题外话了,立马开始正文~~~

socket()接口是linux中常用的接口,在Windows中有另一个接口WSASocket,本文不谈后者,首先我们来看看对我们提供的接口结构:

  int socket(int domain, int type, int protocol);

  参数分析:

  domain:协议域,又称协议族。简而言之,表明了你要用到的是那种协议类型。常用的一般有AF_INET、AF_INET6等等,除了AF还有另一种PF:在Windows中两者其实并没有区分,但是在linux中却有一些细小的差别(AF是BSD的,PF是POSIX的)(BSD、POSIX是什么东西??别问我,反正就是UNIX的系统,再详细我也不会说,反正来看的一般都是新手,在linux中用AF就行了);

  type:返回值类型,也称作套接口类型。一般常用的有三种:SOCK_STREAM、SOCK_DGRAM、SOCK_RAW,这三个分别是TCP套接口、UDP套接口、原始套接口;三者最大的区别在于所在层次上的不同;什么??你想知道分别在什么层??说了你知道吗??网络模型的七层结构背熟了吗??前两者一般在传输层上进行操作、数据填充,后者比较特别,在它们的更下面一层网络层中进行传输;

  protocol:所用协议族中的某个特定协议,一般都是0;

  

  简单的TCP套接字: int TCPfd = socket(AF_INET, SOCK_STREAM, 0);

  简单的UDP套接字:int UDPfd = socket(AF_INET, SOCK_STREAM, 0);

  简单的原始套接字:int RAWfd = socket(AF_INET, SOCK_RAW, 0);

  (发现有问题悄悄滴跟小博说,小博不要面子的啊!!!)

posted @ 2018-11-09 10:15  半路出家当和尚  阅读(131)  评论(0编辑  收藏  举报