根据前面的文章得知, 不管是任何类型的socket, 都需要填充一个struct sockaddr结构, 在Linux下是struct sockaddr_in类型, 然后强制转换为struct sockaddr.
1. 首先用init.h文件声明一个初始化函数来进行这个结构的填充工作:
这里包含了必要的头文件, 访问的server端口号(PORT), 和socket_init函数的声明.
这个socket_init函数的实现是在init.c文件中:
1. 首先用init.h文件声明一个初始化函数来进行这个结构的填充工作:
#ifndef INIT_H
#define INIT_H
/* include */
#include < sys / socket.h >
#include < sys / types.h >
#include < arpa / inet.h >
#include < netinet / in .h >
/* macro */
#define PORT 1104
/* function */
int socket_init( struct sockaddr_in * addr);
#endif
#define INIT_H
/* include */
#include < sys / socket.h >
#include < sys / types.h >
#include < arpa / inet.h >
#include < netinet / in .h >
/* macro */
#define PORT 1104
/* function */
int socket_init( struct sockaddr_in * addr);
#endif
这个socket_init函数的实现是在init.c文件中:
#include
<
string
.h
>
#include " init.h "
/* initalize sockaddr structure */
int socket_init( struct sockaddr_in * addr)
{
int sockfd;
bzero(addr, sizeof(struct sockaddr_in));
addr->sin_family = AF_INET;
addr
#include " init.h "
/* initalize sockaddr structure */
int socket_init( struct sockaddr_in * addr)
{
int sockfd;
bzero(addr, sizeof(struct sockaddr_in));
addr->sin_family = AF_INET;
addr