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

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

solo独奏



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

5come5帮你背单词 [ clock /klok/ n. 钟 ]


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

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





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

5come5帮你背单词 [ each /i:t/ a. 各自的,每;pron. 第个,各自 ]


没有大问题,只是楼主居然搞不清怎么格式化字符串,应该用“%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 | [1 楼]
我来我网·5come5 Forum » 程序员之家

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