黑马程序员Linux网络编程学习笔记。主要说明每个c文件是什么作用,需要复习去看代码就行了。
tcp服务器端设计
同tcpserver.c.
cfd =accept(lfd,(struct sockaddr *)&clit_addr,&clit_addr_len);唯一的区别就是在这边可以获得客户端的网络地址,ip+port,然后读取的方法如下
50 printf("client ip=%s,port=%d\n",
51 inet_ntop(AF_INET,&clit_addr.sin_addr.s_addr,cliet_ip,sizeof(cliet_ip)),
52 ntohs(clit_addr.sin_port));
可以看到ip地址的获取方法利用inet_ntop,port利用ntohs。
我自己写的错误版本客户端实现。
正确版本的客户端实现,值得注意的是在tcpserver.c/tcpserver1.c中,
serv_addr.sin_addr.s_addr=htonl(INADDR_ANY);服务器端地址利用本地可用的任意地址
但是在客户端中,连接只能连接确定的服务器地址 ,所以需要做转换。
ret = inet_pton(AF_INET,"127.0.0.1",&serv_addr.sin_addr.s_addr);