Linux c Socket编程
来源:互联网 发布:淘宝买dota2饰品流程 编辑:程序博客网 时间:2024/05/02 00:46
一、socket基本操作:
1,socket();
2, bind();
3,linsten();
4,accept();
5,connect();
6,send()/sendto/write()....
7,recv()/recvfrom/read().....
close();
二、socket函数原型及参数
1,int socket(int domain, int type, int protocol);
第一个参数指定应用程序使用的通信协议的协议族,对于TCP/IP协议族,该参数置AF_INET;
第二个参数指定要创建的套接字类型,流套接字类型为SOCK_STREAM、数据报套接字类型为SOCK_DGRAM、原始套接字SOCK_RAW(WinSock接口并不适用某种特定的协议去封装它,而是由程序自行处理数据包以及协议首部);
两个重要的类型是 SOCK_STREAM 和 SOCK_DGRAM。 SOCK_STREAM表明数据象字符流 一样通过 socket 。而SOCK_DGRAM 则表明数据将是数据报(datagrams)的形式。
2,int bind(SOCKET socket, const struct sockaddr *address,
socklen_t address_len);
参数说明:
socket:是一个套接字。
address:是一个sockaddr结构指针,该结构中包含了要结合的地址和端口号。
address_len:确定address缓冲区的长度。
返回值:如果函数执行成功,返回值为0,否则为SOCKET_ERROR。
在定义一个套接字后,需要调用bind函数为其指定本机地址、协议和端口号。
3,int listen( SOCKET s, int backlog);
S:用于标识一个已捆绑未连接套接口的描述字。
backlog:等待连接队列的最大长度
4,SOCKET accept( SOCKET s, struct sockaddr FAR* addr,int FAR* addrlen);
参数
s:套接口描述字,该套接口在listen()后监听连接。
addr:(可选)指针,指向一缓冲区,其中接收为通讯层所知的连接实体的地址。Addr参数的实际格式由套接口创建时所产生的地址族确定。
addrlen:(可选)指针,输入参数,配合addr一起使用,指向存有addr地址长度的整型数。
返回值
成功返回一个新的套接字描述符,失败返回-1
注:SOCKET 其实就是int类型,此处返回值可申请一个int fd;
5,int connect(int sockfd, struct sockaddr * serv_addr,int addrlen)
sockfd:socket返回的文件描述符.
serv_addr:储存了服务器端的连接信息.其中sin_add是服务端的地址
addrlen:serv_addr的长度
connect函数是客户端用来同服务端连接的.成功时返回0,sockfd是同服务端通讯的文件描述符 失败时返回-1.
6,int send (int s,const void *msg,size_t len,int flags);
参数说明
第一个参数指定发送端套接字描述符;
第二个参数指明一个存放应用程式要发送数据的缓冲区;
第三个参数指明实际要发送的数据的字节数;
第四个参数一般置0。
返回值为:send msg的字节数。
7,int recv( SOCKET s, char FAR* buf, int len, int flags);
s:一个标识已连接套接口的描述字。
buf:用于接收数据的缓冲区。
len:缓冲区长度。
flags:指定调用方式。
返回值:recv 到的buf字节数。
0 0
- Linux-C-Socket编程
- Linux-C-Socket编程
- Linux-C-Socket编程
- Linux Socket编程 C
- 【c】linux socket编程
- Linux Socket编程 C
- linux C socket 编程
- Linux c Socket编程
- linux c socket编程
- Linux C socket编程
- Linux c 网络socket编程
- Linux c 网络socket编程
- linux下socket c 编程
- Linux下C编程 -- Socket编程
- linux C 编程 之 socket 网络编程
- 【Linux】Linux C socket 编程之TCP
- 【Linux】Linux C socket 编程之UDP
- linux socket 编程(C语言)
- 系统调用直观解释 (与标准IO的对比)
- CSS中怎么让DIV居中
- jquery validate 增加过滤特殊字符的方法
- 漫漫红尘中,忆起你我相逢在充满浪漫的情侣园
- 【数学 合九法】HDU 1163 Eddy's digital Roots
- Linux c Socket编程
- Word生成目录
- android通过反射获取状态栏的高度
- Windows的进程创建和映像装入
- shell中的括号
- python 2/3 的主要区别
- PHP正则二三事
- 有效提高生产力的8个贴士
- xcode 断点调试