我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: [求助]VC基于winsocket写的超简单服务器和客户端的WIN32异常 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

solo独奏



性别: 帅哥 状态: 该用户目前不在线
头衔: 冰是睡着的水
等级: 荣誉会员
家族: YD一族
发贴: 6989
威望: 3
浮云: 379
在线等级:
注册时间: 2006-12-01
最后登陆: 2008-06-26

5come5帮你背单词 [ outdoor /'autdo:/ a. 户外的,露天的,野外的 ]


[求助]VC基于winsocket写的超简单服务器和客户端的WIN32异常

[求助]VC基于winsocket写的超简单服务器和客户端的WIN32异常
确实自己太菜了,不知道是什么原因造成的,请教各位,谢谢
能够成功编译,且可[屏蔽]运行,但是一旦两者同步时就出现异常.
原码如下
顶端 Posted: 2007-06-22 23:24 | [楼 主]
gaodp





性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 632
威望: 0
浮云: 1107
在线等级:
注册时间: 2005-09-14
最后登陆: 2007-06-26

5come5帮你背单词 [ however /hau'evə/ conj. 然而,可是,不过;ad. 不管怎样 ]


客户端没看出什么问题,服务器程序问题较多
bind-listen-accept-close应该要么全部放在while 外,要么全部放在里面,(放在里面好一些)
listen,只有5次可能不够,最好使用等待前面使用while(错误)...
而且服务器要先recv再send与客户段的相反

个人拙见,请高人指教
顶端 Posted: 2007-06-23 00:25 | [1 楼]
coolboy





性别: 保密 状态: 该用户目前不在线
等级: 品行端正
发贴: 252
威望: 0
浮云: 1107
在线等级:
注册时间: 2005-10-02
最后登陆: 2016-04-25

5come5帮你背单词 [ boast /bəust/ vi. 夸耀,说大话;vt. 以有…而自豪,夸,自夸;n. 自夸的话,可夸耀的事 ]


没有大问题,只是楼主居然搞不清怎么格式化字符串,应该用“%s”,而你用的是“s%”,汗。。。
我装的是vs2003,打不开你的工程,小改了一下

============服务端============================
#include<stdio.h>
#include<Winsock2.h>
#pragma comment(lib,"ws2_32.lib")


int _tmain(int argc, _TCHAR* argv[])
{
   WORD wVersionRequested;
   WSADATA wsaData;
   int err;

   wVersionRequested = MAKEWORD( 1, 1);

   err = WSAStartup( wVersionRequested, &wsaData );
   if ( err != 0 ) {

       return 0;
   }


   if ( LOBYTE( wsaData.wVersion ) != 1 ||
       HIBYTE( wsaData.wVersion ) != 1) {

           WSACleanup( );
           return 0;
       }
       SOCKET socksrv=socket(AF_INET,SOCK_STREAM,0);
       sockaddr_in srvaddr;
       srvaddr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
       srvaddr.sin_family=AF_INET;
       srvaddr.sin_port=htons(6000);
       bind(socksrv,(sockaddr*)&srvaddr,sizeof(sockaddr_in));
       listen(socksrv,5);
       int len=sizeof(sockaddr_in);
       while(1)
       {
           sockaddr_in clientaddr;

           SOCKET sockconn=accept(socksrv,(sockaddr*)&clientaddr,&len);
           char sendbuf1[100];
           wsprintf(sendbuf1,"welcom to connect to %s\0",inet_ntoa(clientaddr.sin_addr));

           send(sockconn,sendbuf1,strlen(sendbuf1)+1,0);
           char recvbuf1[100];
           recv(sockconn,recvbuf1,100,0);
           printf("%s",recvbuf1);
           closesocket(sockconn);

       }
       return 0;

}


==========================客户端===========================

#include<stdio.h>
#include<Winsock2.h>
#pragma comment(lib,"ws2_32.lib")

int _tmain(int argc, _TCHAR* argv[])
{

   WORD wVersionRequested;
   WSADATA wsaData;
   int err;

   wVersionRequested = MAKEWORD( 1, 1 );

   err = WSAStartup( wVersionRequested, &wsaData );
   if ( err != 0 ) {

       return 0;
   }


   if ( LOBYTE( wsaData.wVersion ) != 1 ||
       HIBYTE( wsaData.wVersion ) != 1) {

           WSACleanup( );
           return 0;
       }
       SOCKET sockclient=socket(AF_INET,SOCK_STREAM,0);
       sockaddr_in srvaddr;
       srvaddr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
       srvaddr.sin_family=AF_INET;
       srvaddr.sin_port=htons(6000);
       connect(sockclient,(sockaddr*)&srvaddr,sizeof(sockaddr));
       send(sockclient,"hello my friend!\0",strlen("hello my friend!")+1,0);
       char recvbuf[100];
       recv(sockclient,recvbuf,strlen(recvbuf)+1,0);
       printf("%s",recvbuf);
       closesocket(sockclient);
       WSACleanup ();

}
顶端 Posted: 2007-06-23 00:55 | [2 楼]
solo独奏



性别: 帅哥 状态: 该用户目前不在线
头衔: 冰是睡着的水
等级: 荣誉会员
家族: YD一族
发贴: 6989
威望: 3
浮云: 379
在线等级:
注册时间: 2006-12-01
最后登陆: 2008-06-26

5come5帮你背单词 [ division /di'vi3ən/ n. 分,分开,分配,隔开,部门 ]


Quote:
引用第2楼coolboy于2007-06-23 00:55发表的:
没有大问题,只是楼主居然搞不清怎么格式化字符串,应该用“%s”,而你用的是“s%”,汗。。。
我装的是vs2003,打不开你的工程,小改了一下

============服务端============================
#include<stdio.h>
.......

寒一个昏老,谢谢COOLBOY和LS的LS
我试试
顶端 Posted: 2007-06-23 08:39 | [3 楼]
solo独奏



性别: 帅哥 状态: 该用户目前不在线
头衔: 冰是睡着的水
等级: 荣誉会员
家族: YD一族
发贴: 6989
威望: 3
浮云: 379
在线等级:
注册时间: 2006-12-01
最后登陆: 2008-06-26

5come5帮你背单词 [ bandage /'bændid3ə/ n. 绷带 ]


已解决
用gaodp 的改法解决



[ 此贴被solo独奏在2007-06-23 09:06重新编辑 ]
顶端 Posted: 2007-06-23 08:48 | [4 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.009976(s) query 5, Time now is:11-23 08:13, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号