#include "stdlib.h"
#include "winsock.h"
#include<string.h>
#include<stdlib.h>
#include<time.h>
#include "stdio.h"
#pragma comment(lib,"WS2_32")
void main()
{
WSADATA wsaData;
SOCKET sock, newsock;
struct sockaddr_in server;
struct sockaddr_in tcpaddr;
int num,port,p;
char ip[1024];
char buf[1024],c[1024];
int rval, len;
int errno;
long int data;
puts(" →§欢迎进入网络猜数字游戏§← ");
puts(" ☆钟雷 制作☆");
puts(" ★服务器端★");
puts("\n◎请输入端口地址:");
scanf("%d",&p);
puts("◎请输入本机ip地址:");
while(1)
{
gets(ip);
if(ip[0]!='\0')
{
port=p;break;}
}
errno=WSAStartup(MAKEWORD( 2, 0 ), &wsaData);
if (errno!=0) {
perror("cannot init");
exit(1);
}
/* 建立套接字 */
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == INVALID_SOCKET) {
perror("opening stream socket");
WSACleanup();
exit(1);
}
/* 指定端口和IP */
memset((char*)&server,0,sizeof(struct sockaddr_in));
server.sin_family = AF_INET;
server.sin_port = htons(port); /* 端口 */
server.sin_addr.S_un.S_addr= inet_addr(ip); /* 本机 */
errno=bind(sock, (struct sockaddr *)&server, sizeof(server));
if (errno != 0) {
closesocket(sock);
perror("binding stream socket");
printf("%d\n",(errno=WSAGetLastError()));
WSACleanup();
exit(1);
}
/* 开始接收连接 */
begin:srand(time(NULL));
num=rand() % 100 + 1;
printf("\n※产生随机答案为:%d\n",num);
errno=listen(sock, 5);
if (errno!=0) {
printf("listen error\n");
closesocket(sock);
WSACleanup();
exit(1);
}
len = sizeof(struct sockaddr);
while (1) {
newsock = accept(sock, (struct sockaddr *)&tcpaddr, (int *)&len);
if (newsock == INVALID_SOCKET)
perror("accept");
else {
do {
memset(buf, 0, sizeof(buf));
rval = recv(newsock, buf,1024,0);
if (rval== SOCKET_ERROR) {
perror("reading stream message");
closesocket(newsock);
closesocket(sock);
WSACleanup();
exit(1);
}
data=atol(buf);
while(1)
{
if(data>num) {strcpy(buf,"大了");break;}
else if(data<num) {strcpy(buf,"小了");break;}
else {strcpy(buf,"猜对了");break;}
}
if (rval == 0)
printf("ending connection\n");
else {
printf("-->%s\n", buf);
strcpy(c,buf);
send(newsock,buf,1024,0);
}
if(strcmp(buf,"猜对了")==0) goto begin;
}
while (rval != 0);
closesocket(newsock);
}
};
closesocket(sock);
WSACleanup();
}
没有合适的资源?快使用搜索试试~ 我知道了~
计算机网络(猜数字).
共29个文件
exe:4个
pdb:4个
obj:3个
5星 · 超过95%的资源 需积分: 9 27 下载量 114 浏览量
2008-07-24
00:34:16
上传
评论 1
收藏 2.39MB RAR 举报
温馨提示
课程设计---计算机网络(猜数字)<br><br>可以用两台计算机来实现猜数字的游戏(课程设计做得)
资源推荐
资源详情
资源评论
收起资源包目录
计算机网络(猜数字).rar (29个子文件)
调试 大结局
client.exe 172KB
server
server.cpp 3KB
server.ncb 57KB
Debug
vc60.pdb 76KB
server.obj 17KB
vc60.idb 233KB
server.ilk 273KB
server.pdb 521KB
server.exe 180KB
server.pch 3.41MB
server.plg 712B
server.dsw 520B
server.dsp 3KB
server.opt 53KB
client
client.dsp 3KB
client.dsw 537B
client.opt 53KB
Debug
client.pdb 489KB
vc60.pdb 76KB
server.obj 15KB
client.ilk 275KB
client.obj 18KB
vc60.idb 233KB
client.exe 172KB
client.pch 3.4MB
client.plg 712B
client.cpp 3KB
client.ncb 57KB
server.exe 180KB
共 29 条
- 1
资源评论
- zoucunyue2012-06-15很好,但有一个漏洞就是猜对次数的算法有错误,下一次猜答对的次数应该清零后再算。
- xchl9030012013-03-19不错,可以使用
- Savitch2012-06-24不错,但很简单
mskkingtake
- 粉丝: 1
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Javascript和Vue的微信小程序抽奖打地鼠游戏设计源码 - 抽奖打地鼠
- 基于Python和Javascript的车展大屏演示前后端web应用设计源码 - autoshow
- 基于Javascript和微信小程序的Anna设计源码
- 基于Java的仿制品设计源码 - bilibili
- 基于Javascript的影视动画设计源码 - cad
- 基于Java和深度学习的瓦斯浓度预测系统后端设计源码 - 瓦斯浓度预测后端
- Screenshot_20240528_103010.jpg
- 基于Python的新能源承载力计算及界面设计源码 - HAINING-DG
- 基于Java的本科探索学习项目设计源码 - 本科探索
- 基于Javascript和Python的微商城项目设计源码 - MicroMall
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功