您的位置:首页 > 娱乐 > 明星 > 企业网站建设报价单_家装设计软件自学_做网络推广一个月的收入_企点

企业网站建设报价单_家装设计软件自学_做网络推广一个月的收入_企点

2025/1/5 13:37:35 来源:https://blog.csdn.net/qq_40893824/article/details/103857176  浏览:    关键词:企业网站建设报价单_家装设计软件自学_做网络推广一个月的收入_企点
企业网站建设报价单_家装设计软件自学_做网络推广一个月的收入_企点

https://www.bilibili.com/video/av54953415?t=5031
从b站学习网络聊天的学习笔记,过滤了其中的废话:
1.电脑要有vmware workstation,没有的请百度解决
其中注意
在这里插入图片描述
增强型键盘驱动程序最好勾选,这样在使用虚拟系统时,可以使用键盘!
最后有一个许可证秘钥
提供一个秘钥网站:http://www.windows7en.com/Win7/25762.html
很赞!
新建win7虚拟机教程:
https://blog.csdn.net/qq_43296599/article/details/90287992

2.进入cmd有ipconfig查看电脑的ip地址:
在这里插入图片描述

#include<cstdio>
#include<bits/stdc++.h>
#include<WinSock2.h>#pragma comment( lib, "ws2_32.lib")//套接字库int main()
{//1.加载套接字库,初始化WSADATA wd;if( 0 != WSAStartup(MAKEWORD(2,2), &wd) ){printf("加载套接字库失败!\n");printf("错误代码:%d\n", GetLastError() );return 0;}//2.判断版本是否一致if (LOBYTE(wd.wVersion) != 2 || HIBYTE(wd.wVersion) != 2){printf("请求的套接字版本不一致!\n");printf("错误代码:%d\n", GetLastError());return 0;}//3.创建套接字// TCP/IP ==>TCP & UDP// TCP(传输控制协议),  特点:可靠传输、必须建立连接(SOCK_STREAM)// UDP(用户数据报协议),特点:不可靠传输,无需建立连接(SOCK_DGRAM)SOCKET sockSrv = socket(AF_INET, SOCK_STREAM, 0);//O表示根据地址格式 和 套接字的类型来选择合适的协议if (sockSrv == INVALID_SOCKET){printf("创建套接字失败!");printf("错误代码:%d\n", GetLastError());return 0;}SOCKADDR_IN addSrv;addSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY) ; //服务器地址绑定本机地址,INADDR_ANY是本地地址,htonl函数转换地址使他可以被识别addSrv.sin_family = AF_INET ;//使用的协议addSrv.sin_port =  htons(6940) ;//地址族,电脑端口范围0-65535,一般0-1024留给电脑使用/* htonl & htonsh: http, to, n:net, l:long, s:short*///4.绑定套接字if (SOCKET_ERROR == ::bind(sockSrv, (sockaddr*)&addSrv, sizeof(addSrv))){printf("绑定套接字失败!");printf("错误代码:%d\n", GetLastError());return 0;}printf("创建成功!");return 0;
}

在这里插入图片描述
其中第4步的if判断中bind前面要加“::”,不然写上去运行不报错,第二次就有红波浪线了。
运行的话用ctrl+F5,否则vs2019 系统找不到指定的文件(错误代码:0x80070002)

总代码:

#include<stdio.h>
#include<WinSock2.h>
#pragma comment( lib, "ws2_32.lib")//套接字库int main()
{//1.加载套接字库,初始化WSADATA wd;if (0 != WSAStartup(MAKEWORD(2, 2), &wd)){printf("加载套接字库失败!\n");printf("错误代码:%d\n", GetLastError());return 0;}//2.判断版本是否一致if (LOBYTE(wd.wVersion) != 2 || HIBYTE(wd.wVersion) != 2){printf("请求的套接字版本不一致!\n");printf("错误代码:%d\n", GetLastError());return 0;}//3.创建套接字// TCP/IP ==>TCP & UDP// TCP(传输控制协议),  特点:可靠传输、必须建立连接(SOCK_STREAM)// UDP(用户数据报协议),特点:不可靠传输,无需建立连接(SOCK_DGRAM)SOCKET sockSrv = socket(AF_INET, SOCK_STREAM, 0);//O表示根据地址格式 和 套接字的类型来选择合适的协议if (sockSrv == INVALID_SOCKET){printf("创建套接字失败!\n");printf("错误代码:%d\n", GetLastError());return 0;}SOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY); //服务器地址绑定本机地址,INADDR_ANY是本地地址,htonl函数转换地址使他可以被识别addrSrv.sin_family = AF_INET;//使用的协议addrSrv.sin_port = htons(6940);//地址族,电脑端口范围0-65535,一般0-1024留给电脑使用/* htonl & htonsh: http, to, n:net, l:long, s:short*///4.绑定套接字if (SOCKET_ERROR == ::bind(sockSrv, (sockaddr*)&addrSrv, sizeof(addrSrv))){printf("绑定套接字失败!\n");printf("错误代码:%d\n", GetLastError());return 0;}//5.将套接字创建为监听模式if (SOCKET_ERROR == listen(sockSrv, 5)) //监听最大长度是5{printf("监听失败!\n");printf("错误代码:%d\n", GetLastError());return 0;}//6.等待客户端的连接请求SOCKADDR_IN addrClient;int length = sizeof(SOCKADDR);while (1){//返回一个建立连接的套接字//192.168.0.103SOCKET sockConn = accept(sockSrv, (SOCKADDR*)&addrClient, &length);printf("欢迎客户端:%s:%d连接服务器\n", inet_ntoa(addrClient.sin_addr), addrClient.sin_port);//inet_ntoa转成4个字节,地址号 端口号}getchar();return 0;
}

客户端:
1.新建项目chatclient,将chatserver的代码复制进chatclient的源文件中

2.修改第3步中第28行 SOCKET sockSrv 改为 SOCKET sockClient
3. 29行 if判断中 sockSrv 改为 sockClient

4.删除 第4 步到第6 步 的部分

5.int main头两行加:

	char szIPAddress[16]; //192.168.100.100 16个字符printf("请输入你需要连接的服务器的IP地址:");//10.139.209.0cin >> szIPAddress;

6.第42行 addSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
改为
struct in_addr dst;
addrSrv.sin_addr.S_un.S_addr = InetPton(AF_INET, (PCWSTR)szIPAddress, &dst);

7.在后面加上第4步代码:

	//4.连接服务器if (SOCKET_ERROR == connect(sockClient, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR))){printf("连接服务器失败!");printf("错误代码:%d\n", GetLastError());return 0;}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com