socket网络编程
创建套接字socket
函数原型
int socket(int domain, int type, int protocol);
参数说明: domain 有以下几种参数type有以下几种:
protocol默认为0;
绑定端口号
函数原型
int bind(int sockfd, const struct sockaddr *addr,socklen_t addrlen);
参数说明:sockfd 是socket的返回值
const struct sockaddr *addr是一个结构体包含参数如下:
struct sockaddr_in {
__kernel_sa_family_t sin_family; /* Address family */
__be16 sin_port; /* Port number */
struct in_addr sin_addr; /* Internet address */
/* Pad to size of `struct sockaddr'. */
unsigned char __pad[__SOCK_SIZE__ - sizeof(short int) -
sizeof(unsigned short int) - sizeof(struct in_addr)];
};
结构体中有另一个结构体struct in_addr原型如下:
* /* Internet address. */
struct in_addr {
__be32 s_addr;
};*
这时候就需要地址转换API:
#include <arpa/inet.h>
int inet_aton (const char *__cp, struct in_addr *__inp);
//将192.168这种字符串转为网络能识别的
char *inet_ntoa (struct in_addr __in);
//把网络格式的IP转换为192这种字符串