VC++ Socket (这个问题有点牵强)
如何用Socket建立两台内网电脑的连接?server端Client端麻烦给下源代码地址或者写下代码摆脱了只要写出代码采纳我会加100分...
如何 用Socket 建立 两台内网 电脑的连接?
server 端
Client 端
麻烦 给下源代码地址
或者写下代码
摆脱了
只要写出代码 采纳我会加100分 展开
server 端
Client 端
麻烦 给下源代码地址
或者写下代码
摆脱了
只要写出代码 采纳我会加100分 展开
2个回答
展开全部
是要MFC还是application?
给你个application的吧 要用MFC可以发我消息
服务器端:
#include <stdio.h>
#include <Winsock2.h>
#pragma comment(lib, "ws2_32.lib")
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 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);
bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));// 绑定端口
listen(sockSrv,5);
SOCKADDR_IN addrClient;// 连接上的客户端ip地址
int len=sizeof(SOCKADDR);
while(1)
{
SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);// 接受客户端连接,获取客户端的ip地址
char sendBuf[50];
sprintf(sendBuf,"Welcome %s to here!",inet_ntoa(addrClient.sin_addr));// 组合消息发送出去
send(sockConn,sendBuf,strlen(sendBuf)+1,0);// 发送消息到客户端
char recvBuf[50];
recv(sockConn,recvBuf,50,0);// 接受客户端消息
printf("%s\n",recvBuf);
//closesocket(sockConn);//断开连接
}
}
客户端代码
#include <stdio.h>
#include <Winsock2.h>
#pragma comment(lib, "ws2_32.lib")
void main()
{
WORD wVersionRequested;
WSADATA wsaData;//WSAata用来存储系统传回的关于WinSocket的资料。
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);// AF_INET ..tcp连接
//初始化连接与端口号
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");//本机地址,服务器在本机开启
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);// 设置端口号
connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));//连接服务器
char recvBuf[50];
recv(sockClient,recvBuf,50,0);//接受数据
printf("%s\n",recvBuf);
send(sockClient,"hello",strlen("hello")+1,0);//发送数据
closesocket(sockClient);//关闭连接
WSACleanup();
}
注意端口号不要设置保留端口和3000不然会出错
给你个application的吧 要用MFC可以发我消息
服务器端:
#include <stdio.h>
#include <Winsock2.h>
#pragma comment(lib, "ws2_32.lib")
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 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);
bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));// 绑定端口
listen(sockSrv,5);
SOCKADDR_IN addrClient;// 连接上的客户端ip地址
int len=sizeof(SOCKADDR);
while(1)
{
SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);// 接受客户端连接,获取客户端的ip地址
char sendBuf[50];
sprintf(sendBuf,"Welcome %s to here!",inet_ntoa(addrClient.sin_addr));// 组合消息发送出去
send(sockConn,sendBuf,strlen(sendBuf)+1,0);// 发送消息到客户端
char recvBuf[50];
recv(sockConn,recvBuf,50,0);// 接受客户端消息
printf("%s\n",recvBuf);
//closesocket(sockConn);//断开连接
}
}
客户端代码
#include <stdio.h>
#include <Winsock2.h>
#pragma comment(lib, "ws2_32.lib")
void main()
{
WORD wVersionRequested;
WSADATA wsaData;//WSAata用来存储系统传回的关于WinSocket的资料。
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);// AF_INET ..tcp连接
//初始化连接与端口号
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");//本机地址,服务器在本机开启
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);// 设置端口号
connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));//连接服务器
char recvBuf[50];
recv(sockClient,recvBuf,50,0);//接受数据
printf("%s\n",recvBuf);
send(sockClient,"hello",strlen("hello")+1,0);//发送数据
closesocket(sockClient);//关闭连接
WSACleanup();
}
注意端口号不要设置保留端口和3000不然会出错
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询