Socket网络编程总结
2016-03-09 22:41
344 查看
1.sockaddr结构体
sockaddr结构体包含了网络地址和端口的一些数据。以下三个函数实现了字符串转sockaddr结构体的功能。
in_addr转字符串的函数:
2.连接时的相关函数,首先是server端
int sockfd(int family, int type, int protocol)
family是指明是IPV4还是IPV6的参数,平常我们用的IPV4是AF_INET。type是指的是面向连接还是数据包的选项,分别是SOCK_STREAM以及SOCK_DGRAM。protocal是协议名,一般默认为0即可。
int bind(int sockfd, const struct sockaddr *myaddr, socklen_t addrlen)
sockfd是之前的fd,myaddr以及addrlen是sockaddr的地址以及相应的长度。
int listen(int sockfd, int backlog)
sockfd是相应的文件描述符,backlog指的是可以有监听多少个客户端。
int accept(int sockfd, struct sockaddr *myaddr, socklen_t addrlen)
sockfd为相应的文件描述符,myaddr 以及addrlen为相应的地址和字符长度。
ssize_t write(int fd, const void *buf, size_t count);
ssize_t read(int fd, const void *buf, size_t count);
返回写入与读出的字节数
close(int fd)
以下是 client端的相关函数:
int connect(int sockfd, const struct sockaddr *servaddr, socklen_t addrlen);
)
sockaddr结构体包含了网络地址和端口的一些数据。以下三个函数实现了字符串转sockaddr结构体的功能。
int inet_aton(const char *strptr, struct in_addr *addrptr); in_addr_t inet_addr(const char *strptr); int inet_pton(int family, const char *strptr, void *addrptr);
in_addr转字符串的函数:
char *inet_ntoa(struct in_addr inaddr); const char *inet_ntop(int family, const void *addrptr, char *strptr, size_t len);
2.连接时的相关函数,首先是server端
int sockfd(int family, int type, int protocol)
family是指明是IPV4还是IPV6的参数,平常我们用的IPV4是AF_INET。type是指的是面向连接还是数据包的选项,分别是SOCK_STREAM以及SOCK_DGRAM。protocal是协议名,一般默认为0即可。
int bind(int sockfd, const struct sockaddr *myaddr, socklen_t addrlen)
sockfd是之前的fd,myaddr以及addrlen是sockaddr的地址以及相应的长度。
int listen(int sockfd, int backlog)
sockfd是相应的文件描述符,backlog指的是可以有监听多少个客户端。
int accept(int sockfd, struct sockaddr *myaddr, socklen_t addrlen)
sockfd为相应的文件描述符,myaddr 以及addrlen为相应的地址和字符长度。
ssize_t write(int fd, const void *buf, size_t count);
ssize_t read(int fd, const void *buf, size_t count);
返回写入与读出的字节数
close(int fd)
以下是 client端的相关函数:
int connect(int sockfd, const struct sockaddr *servaddr, socklen_t addrlen);
)
相关文章推荐
- TCP/IP知识总结(TCP/IP协议族读书笔记二)
- 网络编程_TCP_Socket通信原理_多个客户端_聊天室原理JAVA189-190
- Apache HTTP Server初步安装
- 使用common-fileUpload和 Spring中MultipartHttpServletRequest实现文件上传
- linux下修改tcp内核参数,提升系统性能
- 虚拟机的三种网络模式
- 第四天 网络 post get JSONObject
- 网络原理,以及对VMware Workstation虚拟网络VMnet0、VMnet1、VMnet8的图解
- linux下apache无法启动之(httpd not running, trying to st)
- [网络流24题]魔术球问题 贪心||枚举答案+最小路径覆盖
- MES案例研究2 – OPC网络阻塞
- HDU 1853Cyclic Tour(网络流之最小费用流)
- HttpServletRequest对象(一)
- 嵌入式系统网络通信
- Java网络编程——URL
- HttpServletRequest对象方法的用法
- 从输入一个URL到页面呈现,网络上都发生了什么?
- Unity3D 集成 Face++ FacePlusPlus httpClient http协议 byte数组转string
- TCP三次握手和释放
- 解决Win10创建wifi热点时出现无法启动承载网络的情况