https://blog.csdn.net/xiaoge2030/article/details/77604645 创建空项目
https://blog.csdn.net/hzrandd/article/details/51028869 socket知识
http://www.cnblogs.com/hhjfighting/p/8760086.html 南邮学子
https://blog.csdn.net/10km/article/details/80203286 中文乱码 未解决
建议:用2015不要用2017
如果是在用2017,创建空项目的时候不要勾SDL
后来问了一个同学才知道问题方向错了,在控制台里看结果的话要在win10语言设置里面
勾选上beta版,控制台就没有乱码了,但是你别的文件中文就会乱码_(:з」∠)_
int socket( int domain, int type, int ptotocol);
参数domain指明通信域,如PF_UNIX(unix域),PF_INET(IPv4),PF_INET6(IPv6)等;type指明通信类型,如SOCK_STREAM(面向连接方式)、SOCK_DGRAM(非面向连接方式)等。一般来说,参数protocol可设置为0,除非用在原始套接口上(原始套接口有一些特殊功能,后面还将介绍)。
int bind( int sockfd, const struct sockaddr * my_addr, socklen_t my_addr_len))
返回:0 ──成功, - 1 ──失败
参数sockfd
指定地址与哪个套接字绑定,这是一个由之前的socket函数调用返回的套接字。调用bind的函数之后,该套接字与一个相应的地址关联,发送到这个地址的数据可以通过这个套接字来读取与使用。
参数addr
指定地址。这是一个地址结构,并且是一个已经经过填写的有效的地址结构。调用bind之后这个地址与参数sockfd指定的套接字关联,从而实现上面所说的效果。
参数addrlen
正如大多数socket接口一样,内核不关心地址结构,当它复制或传递地址给驱动的时候,它依据这个值来确定需要复制多少数据。这已经成为socket接口中最常见的参数之一了。
bind函数并不是总是需要调用的,只有用户进程想与一个具体的地址或端口相关联的时候才需要调用这个函数。
https://blog.csdn.net/dongliqiang2006/article/details/5824651
第二个参数对于Ipv4来说,实际上需要填充的结构是struct sockadd