TCP基本套接字编程
2016-11-25 01:05
225 查看
客户端需要调用的两个函数:
socket()函数:
#include<sys/socket.h>
int socket(int family, int type, int protocol);
参数:第一个参数family为协议族,一般为AF_INET,
第二个参数是套接字类型,一般为SOCK_STREAM(字节流套接字)
第三个是一个常量值,对应不同的传输协议,我们可以将它写成0
返回值:返回一个套接字描述符,成功时候返回一个非负整数
说明:为了得到一个套接字描述符,我们使用了协议族,和套接字的类型,并没有指定本地地址和远程协议地址
connect()函数:
#include<sys/socket.h>
int connect(int sockfd, const struct *servaddr, socklen_t addrlen)
参数:第一个参数是得到的套接字描述符,第二个参数是指向套接字地址结构的指针,第三个是地址结构的长度
返回值:成功返回0,出错返回-1
当使用IPV4协议的时候,调用connect()函数会有TCP/IP的三次握手,到了建立成功或者出错时候返回。
connect()函数使得客户端从CLOSE状态转换到了SYN—SENT状态,如果成功则使得客户端的状态变成ESTABLISHED状态,失败的话则必须关闭这个套接字(close()函数)
服务器需要调用的四个函数:
第一也是创建socket套接字
第二调用bind()函数
第三调用listen()函数
第四调用accept()函数
bind()函数:
将本地协议地址赋值给一个套接字,网络协议的协议地址32位IPv4和16位的UDP和TCP端口号的组合
int bind(int sock, const struct sockaddr *myaddr, socklen_t addr)
参数:
第一个是套接字
第一个参数是指向地址结构体的指针
第三个参数是这个地址结构体的长度
成功返回一个非负整数,失败返回-1
listen()函数:
在本地床架一个套接字的时候,这个套接字为主动套接字,自己调用connect()函数
使用listen()函数,使得主动套接字变成被动套接字。
原型:
int listen(int socked, int blog);
参数:
第一个参数是socked,是套接字标识符
第二个参数是blog,是已完成链接和未完成链接的之和,通常设置为5
返回值:
成功返回0,失败返回-1
accept()函数:
将一个已完成链接的套接字从队列中取出来,返回下一个已完成连接
int accept(int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen)
参数:第一个是监听套接字
第二个及第三个参数是对端客户端的协议地址及其长度的指针
socket()函数:
#include<sys/socket.h>
int socket(int family, int type, int protocol);
参数:第一个参数family为协议族,一般为AF_INET,
第二个参数是套接字类型,一般为SOCK_STREAM(字节流套接字)
第三个是一个常量值,对应不同的传输协议,我们可以将它写成0
返回值:返回一个套接字描述符,成功时候返回一个非负整数
说明:为了得到一个套接字描述符,我们使用了协议族,和套接字的类型,并没有指定本地地址和远程协议地址
connect()函数:
#include<sys/socket.h>
int connect(int sockfd, const struct *servaddr, socklen_t addrlen)
参数:第一个参数是得到的套接字描述符,第二个参数是指向套接字地址结构的指针,第三个是地址结构的长度
返回值:成功返回0,出错返回-1
当使用IPV4协议的时候,调用connect()函数会有TCP/IP的三次握手,到了建立成功或者出错时候返回。
connect()函数使得客户端从CLOSE状态转换到了SYN—SENT状态,如果成功则使得客户端的状态变成ESTABLISHED状态,失败的话则必须关闭这个套接字(close()函数)
服务器需要调用的四个函数:
第一也是创建socket套接字
第二调用bind()函数
第三调用listen()函数
第四调用accept()函数
bind()函数:
将本地协议地址赋值给一个套接字,网络协议的协议地址32位IPv4和16位的UDP和TCP端口号的组合
int bind(int sock, const struct sockaddr *myaddr, socklen_t addr)
参数:
第一个是套接字
第一个参数是指向地址结构体的指针
第三个参数是这个地址结构体的长度
成功返回一个非负整数,失败返回-1
listen()函数:
在本地床架一个套接字的时候,这个套接字为主动套接字,自己调用connect()函数
使用listen()函数,使得主动套接字变成被动套接字。
原型:
int listen(int socked, int blog);
参数:
第一个参数是socked,是套接字标识符
第二个参数是blog,是已完成链接和未完成链接的之和,通常设置为5
返回值:
成功返回0,失败返回-1
accept()函数:
将一个已完成链接的套接字从队列中取出来,返回下一个已完成连接
int accept(int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen)
参数:第一个是监听套接字
第二个及第三个参数是对端客户端的协议地址及其长度的指针
相关文章推荐
- 4 基本TCP套接字编程
- UNIX网络编程卷一 笔记 第四章 基本TCP套接字编程
- 基本 TCP 套接字编程讲解
- UNIX网络编程笔记 第四章 基本TCP套接字编程
- 基本的TCP套接字编程
- UNP总结 Chapter 4 基本TCP套接字编程
- Unix网络编程之基本TCP套接字编程
- 初学Sockets编程(一) 基本的TCP套接字
- 4. 基本TCP套接字编程
- 第四章 基本TCP套接字编程 第五章 TCP客户/服务器程序实例
- 基本tcp套接字编程
- 基本TCP套接字编程
- 第四章 基本TCP套接字编程
- 基本TCP套接字编程
- UNP总结 Chapter 4 基本TCP套接字编程
- 基本TCP套接字编程
- 基本TCP套接字编程
- TCP和UDP套接字编程基本流程
- UNIX网络编程之第二步之嚼烂基本TCP套接字编程(以简单的TCP客户/服务器回射程序为例)
- 简述基本TCP套接字编程(一)