当前位置: 技术问答>linux和unix
Unix Socket编程
来源: 互联网 发布时间:2016-01-06
本文导语: .Socket Socket是TCP/IP网络的API, 可以用它来开发网络应用程序 Socket数据传输是一种特殊的I/O, Socket也是一种文件描述符 .Socket的建立 int socket(int domain, int type, int protocol) 函数返回: 一个...
.Socket
Socket是TCP/IP网络的API, 可以用它来开发网络应用程序
Socket数据传输是一种特殊的I/O, Socket也是一种文件描述符
.Socket的建立
int socket(int domain, int type, int protocol)
函数返回:
一个整型的Socket描述符, 可以在后面调用它
参数说明:
int domain 指明所使用的协议族, 通常是PF_INET, 表示网络(TCP/IP)协议族
说明我们网络程序所在的主机采用的通讯协族(AF_UNIX和AF_INET等).
AF_UNIX : 只能够用于单一的Unix系统进程间通信,
AF_INET : 是针对Internet的,因而可以允许在远程主机之间通信
(当我们man socket时发现domain可选项是 PF_*而不是AF_*,因为glibc是posix的实现所以用PF代替了AF,不过我们都可以使用的)
int type 指定socket的类型, 通常是 SOCK_STREAM 流式Socket这样会提供按顺序的,可靠,双向,面向连接的比特流和SOCK_DGRAM数据报式Socket这样只会提供定长的,不可靠,无连接的通信
int prottocol 通常为0 由于我们指定了type,所以这个地方我们一般只要用0来代替就可以了
Socket是TCP/IP网络的API, 可以用它来开发网络应用程序
Socket数据传输是一种特殊的I/O, Socket也是一种文件描述符
.Socket的建立
int socket(int domain, int type, int protocol)
函数返回:
一个整型的Socket描述符, 可以在后面调用它
参数说明:
int domain 指明所使用的协议族, 通常是PF_INET, 表示网络(TCP/IP)协议族
说明我们网络程序所在的主机采用的通讯协族(AF_UNIX和AF_INET等).
AF_UNIX : 只能够用于单一的Unix系统进程间通信,
AF_INET : 是针对Internet的,因而可以允许在远程主机之间通信
(当我们man socket时发现domain可选项是 PF_*而不是AF_*,因为glibc是posix的实现所以用PF代替了AF,不过我们都可以使用的)
int type 指定socket的类型, 通常是 SOCK_STREAM 流式Socket这样会提供按顺序的,可靠,双向,面向连接的比特流和SOCK_DGRAM数据报式Socket这样只会提供定长的,不可靠,无连接的通信
int prottocol 通常为0 由于我们指定了type,所以这个地方我们一般只要用0来代替就可以了
|
感觉搞unix的人太少,讨论的不多。希望日后能多一些人参与这方面的开发。
|
recv函数的“如果flags为0,则和read,write一样的操作.”这一句具体什么含义呢?一直不明白,接收以后是清除还是不清除缓冲区啊?
|
好贴,收藏
thanks~~~
thanks~~~
|
为什么不附个实例呢?
|
chinaunix比较多
|
这个.....网上有的是啊
|
mark
|
顶一个
|
UP``