一小问 步骤 谢谢 给赞
发布网友
发布时间: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追答额,我没看你那步,中间有点错了。最后那点应该是三分之四倍根号三