资源简介

1. 将Server目录下的Server.cpp中第58行到61行的IP地址改为本机实际的IP地址。2. 编译Server.cpp并运行。在命令行方式下运行。程序无输出,保持其运行,等待Client连接。3. Client目录下的Client.cpp不需修改,可以直接编译。但因为有命令行参数,所以不能直接在VC中运行,需要在命令行方式下运行。命令格式为: client 服务器IP地址 3000也可将Debug目录下的批处理文件run.bat修改后双击运行。此时,Client显示“发送成功”,Server显示“连接中止......”。

资源截图

代码片段和文件信息

// Client.cpp : Defines the entry point for the console application.
//

#include “stdafx.h“
#include “stdio.h“
#include “Winsock2.h“
#define DATA “hello world!“


void main(int argc char* argv[])
{
int sockid;//Socket号
struct sockaddr_in server_addr;//服务器的地址结构
struct hostent *hp;//主机信息的结构


////////第一步,版本协商
WORD wVersionRequested;//需要的版本号
WSADATA wsaData;//协商时使用的变量
//使要求的版本为2.1
int err;
//设置需要的版本号为2.1
wVersionRequested=MAKEWORD(12);
//启动socket
err=WSAStartup(wVersionRequested&wsaData);
//用户没有找到一个可以使用的DLL,返回

if(err!=0)
{
perror(“无DLL可用“);
}

//确保Windows Sockets Dll支持2.1
if((LOBYTE(wsaData.wVersion)!=1)||(HIBYTE(wsaData.wHighVersion)!=2))
{
perror(“无正确的DLL“);
WSACleanup();
return;
}

////////第二步,建立socket

sockid=socket(AF_INETSOCK_STREAM0);
if(sockid<0)
{
perror(“建立套接字失败“);
return;
}
//建立地址域
server_addr.sin_family=AF_INET;
//得到命令行中指定的服务器的名字
hp=gethostbyname(argv[1]);

if(hp==0)
{
//没有可以得到的信息,程序不能继续执行
return;
}

memcpy((char*)&server_addr.sin_addr(char*)hp->h_addr hp->h_length);
//得到命令行中指定的服务器提供的端口号
server_addr.sin_port=htons((unsigned short)atoi(argv[2]));

///////第三步,进行连接
if(connect(sockid(struct sockaddr*)&server_addrsizeof(server_addr))<0)
{
perror(“连接失败“);
return;
}

///////第四步,进行发送数据
if((send(sockidDATAsizeof(DATA)0))<0)
{
perror(“发送数据失败“);
return;
}
else
{
//成功发送
printf(“成功发送\n“);
}


///////关闭socket

closesocket(sockid);
WSACleanup();//和WSAStartup()相对应
return;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3445  2005-05-24 19:40  控制台通信程序\Client\Client.dsp

     文件        520  2005-05-24 19:10  控制台通信程序\Client\Client.dsw

     文件      50176  2008-04-11 11:38  控制台通信程序\Client\Client.ncb

     文件       1130  2008-04-11 11:37  控制台通信程序\Client\Client.plg

     文件       1208  2005-05-24 19:10  控制台通信程序\Client\ReadMe.txt

     文件        293  2005-05-24 19:10  控制台通信程序\Client\StdAfx.cpp

     文件        667  2005-05-24 19:10  控制台通信程序\Client\StdAfx.h

     文件     155706  2008-04-11 11:37  控制台通信程序\Client\Debug\Client.exe

     文件         30  2008-04-11 09:51  控制台通信程序\Client\Debug\run.bat

     目录          0  2008-04-10 16:17  控制台通信程序\Client\Debug

     文件       1769  2008-04-11 15:19  控制台通信程序\Client\Client.cpp

     文件      48640  2008-04-11 11:38  控制台通信程序\Client\Client.opt

     目录          0  2008-04-10 16:17  控制台通信程序\Client

     文件       1208  2005-05-24 19:10  控制台通信程序\Server\ReadMe.txt

     文件       4574  2005-05-24 19:44  控制台通信程序\Server\Server.dsp

     文件        520  2005-05-24 19:10  控制台通信程序\Server\Server.dsw

     文件      50176  2008-04-11 11:42  控制台通信程序\Server\Server.ncb

     文件       1303  2008-04-11 11:42  控制台通信程序\Server\Server.plg

     文件        293  2005-05-24 19:10  控制台通信程序\Server\StdAfx.cpp

     文件        667  2005-05-24 19:10  控制台通信程序\Server\StdAfx.h

     文件     155706  2008-04-11 11:42  控制台通信程序\Server\Debug\Server.exe

     目录          0  2008-04-10 16:18  控制台通信程序\Server\Debug

     文件       2583  2008-04-11 11:42  控制台通信程序\Server\Server.cpp

     文件      48640  2008-04-11 11:42  控制台通信程序\Server\Server.opt

     目录          0  2008-04-10 16:18  控制台通信程序\Server

     目录          0  2008-04-10 16:17  控制台通信程序

     文件        445  2008-04-11 15:32  控制台通信程序\程序运行说明.txt

----------- ---------  ---------- -----  ----

               529699                    27



............此处省略0个文件信息

评论

共有 条评论