做局域网点对点通信

计算机网络课程设计的产物没办法现在忙时间不够能实现在局域网两台机上收发文字字符这样就可以了,要C编程,C++也马虎东西比较简单得写上语句的注释,要不老师问起我不知道怎么回... 计算机网络课程设计的产物
没办法
现在忙时间不够
能实现在局域网两台机上收发文字字符这样就可以了,
要C编程,C++也马虎
东西比较简单
得写上语句的注释,要不老师问起我不知道怎么回答,详细点
做得好后面再给你加分//
请高手尽快做好,偶老师催得紧
展开
 我来答
百度网友1305448
推荐于2016-08-16 · TA获得超过443个赞
知道小有建树答主
回答量:204
采纳率:100%
帮助的人:122万
展开全部
我刚刚做有例子.也许你可以参考一下.
XP,VC++6.0中文版下通过
服务器和客户端
每个文件编译的时候要在工程->设置->Link里->L/对象库模块
最后加上ws2_32.lib
先编译运行服务器,再编译运行客户端
//TcpSrv.cpp服务器
#include <Winsock2.h>
#include <stdio.h>

void main()
{
WORD wVersionRequested; //指定请求的windows socket版本号
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD( 1, 1 ); //请求1.1版本的windows socket

err = WSAStartup( wVersionRequested, &wsaData ); //判断是否出错
if ( err != 0 ) {
return;
}

if ( LOBYTE( wsaData.wVersion ) != 1 || //判断是否1.1版本的windows socket
HIBYTE( wsaData.wVersion ) != 1 ) {
WSACleanup( ); //如果不是请求的版本,则退出,做清理工作
return;
}
SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0); //初始化服务器端套接字

SOCKADDR_IN addrSrv; //以下几行初始化协议族及端口
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000); //6000端口

bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)); //绑定6000端口

listen(sockSrv,5); //监听,最大监听数5

SOCKADDR_IN addrClient;
int len=sizeof(SOCKADDR);

while(1) //服务器持续等待连接
{
SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len); //接受客户端连接
char sendBuf[100];
sprintf(sendBuf,"Welcome %s",
inet_ntoa(addrClient.sin_addr));
send(sockConn,sendBuf,strlen(sendBuf)+1,0); //向客户端发送数据,这里只简单发送客户端的ip
char recvBuf[100];
recv(sockConn,recvBuf,100,0); //接收客户端数据
printf("%s\n",recvBuf);
closesocket(sockConn); //关闭连接
}
}
---------------------------------
---------------------------------
//TcpClient.cpp客户端
#include <Winsock2.h>
#include <stdio.h>

void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD( 1, 1 );

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

if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 ) {
WSACleanup( );
return;
}
SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0); //初始化客户端套接字

SOCKADDR_IN addrSrv; //初始化ip地址
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1"); //以内置127.0.0.1做演示
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000); //6000端口
connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)); //向服务器端发起连接请求,与服务器达成3次握手

char recvBuf[100];
recv(sockClient,recvBuf,100,0); //接收服务器数据
printf("%s\n",recvBuf);
send(sockClient,"This is Zhang San",strlen("This is Zhang San")+1,0); //发送数据This is Zhang San到服务器

closesocket(sockClient); //关闭套接字
WSACleanup(); //退出windows socket的使用
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式