网络编程基础(一)

网络编程基础(一)

TCP服务器和客户端的创建

服务器

获得套接字标识符socket_fd

int socket(int domain, int type, int protocol);
/*int domain 为传输协议 TCP一般用AF_INET IPv4 Internet protocols IPV4网络协议
						AF_INET6 IPv6 Internet protocols IPV6网络协议(需要收费)
  int type 为传输形式   TCP 用SOCK_STREAM 以数据流的方式传输
  int protocol 套接字选项 一般形式为0 
  成功返回 标识符socket_fd
  失败返回 -1 和错误码*/

绑定套接字并将自己ip、端口号、传输协议广播

bind(int socket_fd,const struct sockaddr* addr,socklen_t len)
/*int socket_fd 为上面获得的套接字
  const struct sockaddr* addr 为存放ip、端口、传输协议等信息的通用结构体
  socklen_t len 为结构体的长度*/

TCP/IP IPV4专用的结构体


struct sockaddr_in
{
    int sa_len;                     //长度单位,不必设置,通常情况下固定长度为16字节
    short int sa_family;            //地址族
    unsigned short int sin_port;    //端口号
    struct in_addr sin_addr;        //IP地址
    unsigned char sin_zero[8];      //填充0以保持与struct sockaddr同样大小
};
 
struct sin_addr
{
    in_addr_t s_addr;    //32位IPv4地址,网络字节序
}

绑定成功后开始监听

listen(int socket_fd,int backlog)
   /* socket_fd 为套接字标识符
    backlog 为最大连接数,超过则会发送错误码ECONNREFUSED 
    成功:0 失败:-1 */

开始接收消息

accept(int sockfd,struct sockaddr *addr,socklen_t *addrlen)
/*   socketfd 为套接字标识符
    struct sockaddr* addr 为一种通用的套接字结构类型,以供不同的协议调用
    替换成struct sockaddr_in (TCP/IP协议)
    socklen_t* addrlen 为长度指针
    成功:客户端套接字标识 失败:-1*/

最后就是创建一个内存接收消息并读取

客户端
先获得套接字

int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); 
/*	int sockfd 为套接字
	const struct sockaddr *addr 存放服务器各种ip、端口号、传输协议信息
	IPV4 用struct sockaddr_in替换
	socklen_t addrlen
	成功返回 0
	否则返回-1,错误码

最后就是创建一个内存接收消息并读取

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值