问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

一小问 步骤 谢谢 给赞

发布网友 发布时间:2022-11-20 18:57

我来回答

2个回答

热心网友 时间:2024-12-04 21:16

附件 1 :
首先编写服务器端程序,实现代码如下:
Chat Server
#include <iostream>
#include <WinSock2.h>
#pragma comment(lib, "Ws2_32.lib")
using namespace std;
int main(int argc, CHAR * argv[])
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(2, 0);
err = WSAStartup(wVersionRequested, & wsaData);
if (err != 0 )
{
cout << "WSAStartup Error!" << endl;
return 1;
}
if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 0)
{ cout << "Version not rignt!" << endl;
WSACleanup();
return 1;
}
//创建套接字
//第二个参数和TCP设置不同
SOCKET sockSrv = socket(AF_INET, SOCK_DGRAM, 0);
SOCKADDR_IN addrSrv; // //设置服务器端套接字的地址结构的相关属性
addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY); //设置IP
第12/15页
addrSrv.sin_port = htons(20000); // //设置端口号
addrSrv.sin_family = AF_INET;
//将套接字和服务器地址结构绑定
bind(sockSrv, (SOCKADDR *)&addrSrv, sizeof(SOCKADDR) );
char recvBuf[100];
char sendBuf[100];
char tempBuf[100];
SOCKADDR_IN addrClient;
int len = sizeof(SOCKADDR);
while(1)
{
//从客户端接收数据
recvfrom(sockSrv, recvBuf, 100, 0, (SOCKADDR *)& addrClient, & len);
if ('q' == recvBuf[0])
{
sendto(sockSrv, "q", strlen("q") + 1, 0, (SOCKADDR*) & addrClient, len);
cout << "chart end" << endl;
break; //退出循环
}
//将对方发送过来的信息前段加上IP地址进行输出
sprintf(tempBuf, "%s say %s\n", inet_ntoa(addrClient.sin_addr), recvBuf);
cout << tempBuf << endl;
//将用户的键盘输入发送到对方
cout << "Please input message: " << endl;
gets(sendBuf);
sendto(sockSrv, sendBuf, strlen(sendBuf) + 1, 0, (SOCKADDR * )&addrClient,
len);
}
closesocket(sockSrv);
第13/15页
WSACleanup();
return 0;
}
下面编写聊天客户端程序,实现代码如下:
Chat client
#include <iostream>
#include <WinSock2.h>
#pragma comment(lib, "Ws2_32.lib") //静态加入一个lib文件
using namespace std;
int main(int argc, CHAR * argv[])
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(2, 0);
err = WSAStartup(wVersionRequested, & wsaData);
if (err != 0 )
{
cout << "WSAStartup Error!" << endl;
return 1;
}
if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 0)
{ cout << "Version not rignt!" << en

热心网友 时间:2024-12-04 21:18

根号三乘根号*是根号十五嘛,然后再和根号十五相乘。我算的最后结果是180追答额,我没看你那步,中间有点错了。最后那点应该是三分之四倍根号三

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...的电器到成都,请问一下,那个航空快一些呀,多少/公斤? 前女友和我分手一年之后,出车祸死了,我很高兴,这种心理是不是不... 为什么听到前女友去世的消息,我竟然放声大哭,她很爱我,是我对她腻了... 兰州银行充天然气必须要本行卡吗 从服饰礼仪看中西方文化差异 为什么iqoo11评价那么低? 相机快门线的运用范围 快门线是干什么用的 请问这是什么虫子 还挺硬的 在楼房内 整理箱上面发现的 屋内有木质上... 请问这是什么虫子?家里抓到,2cm左右。坐标北京,昌平,冬季12月,楼房... InterlockedIncrement和InterlockedDecrement是做什么用的 大大火箭队里的保罗。全名叫什么? 保罗的民籍是哪国的 C#开发 如何使用WSAStartup和 WSACleanup接口,包括怎么样定义_百度知 ... 杭州福达除湿设备有限公司电话是多少? C#调用C++ dll WSACleanup怎么调用 mfc 什么时候 调用 wsacleanup WSACleanup()的简述 酷泠至尊电源和海盗船电源线通用吗 WSACleanup()的介绍 海盗船vs550风扇动一下就不动了 阿诗丹顿和老板油烟机哪个好 安全工器具存储柜有啥作用? 给爸爸的父亲节礼物 渔具类 婆婆整天坐在沙发上看电视,对家里不管不问怎么办? 我生孩子的时候,婆婆不管不问她老了我能管她吗? 请问下面两种类型的空调有什么区别?那款好点?谢谢大家!!! 小学一年级作业,萝卜算不算植物? 成长不能错过阅读训练 我停车的时候,被机场门口的摄像头拍了两下,是违章了吗? 未来的电脑小学作文300字 保罗和蓝威合作了吗 NBA保罗的全名是什么 大家总说最好的PG是保罗,他的全名是什么?为什么? 想买套彩妆,有合适的大牌网站推荐吗?要正品哦! 交友须知:什么样面相的人不可交? 在哪里可以买全套的化妆品 啥面相的人不易打交道 我今天卖了一瓶卸妆水,怎么给同行的人分享我是怎么卖出去的? 苹果homepod智能音箱音质对比结果 线虫动物的形态特征 线虫的主要特征有哪些??? 2021-11-20 ES6新增的copywithin属性 电信宽带跟集团卡销售好做吗 梦见一条大蛇被我老公打死,蛇咬了我老公的脚一口,流了好多血。 手机图标有个手机形状信号打了一个勾是什么意思如何关闭 2019艺术涂料十大品牌 孩子脾气暴躁对成长的坏处有哪些 创维电视蓝屏不显示画面? 创维电视显示蓝屏无信号怎么办?