急问,window下,实现一最简单socket通信,不要界面?

anshetal 2004-12-22 11:49:11
必须至少要包含哪些头文件,只要select,send,recv函数
能用就行。明个急着交差,在此拜托各位了。

解决后立即散发。
...全文
69 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluestone 2004-12-23
  • 打赏
  • 举报
回复
以下是示例代码,需要自己整理一下。

client:

BYTE acBuff[255];
BYTE acIpAddress[35]=("127.0.0.1");
SOCKADDR_IN Cli;

Cli.sin_addr.s_addr=inet_addr((char*)acIpAddress);

Cli.sin_family=AF_INET;

Cli.sin_port=htons(6000); // port

SOCKET CliSock = socket(AF_INET,SOCK_STREAM,0);

while(connect(CliSock,(SOCKADDR *)&(Cli),sizeof(Cli)))
{

}

int iRecvFlag=recv(CliSock,(char*)acBuff,255,0);
if(SOCKET_ERROR != iRecvFlag)
{
acBuff// data...
}
closesocket(CliSock);
-------------------------------------------------
server:
SOCKET Sock;
SOCKET MsgSock;
SOCKADDR_IN Serv;

Serv.sin_addr.s_addr=inet_addr(TEXT("127.0.0.1"));
Serv.sin_family=AF_INET;
Serv.sin_port=htons(5000);

int iAddlen=sizeof(Serv);

Sock=socket(AF_INET,SOCK_STREAM,0);
bind(Sock,(SOCKADDR*)&Serv,iAddlen);

MsgSock = accept( Sock,(SOCKADDR *)&( Serv ),&( iAddlen ));

recv(MsgSock,acbuff,255,0);

acbuff// data...

closesocket(MsgSock);
closesocket(Sock);

//发送 在MsgSock联接后
send(MsgSock,acBuff,255,0);



HunterForPig 2004-12-23
  • 打赏
  • 举报
回复
客户端:
#pragma comment(lib,"ws2_32.lib")
#include<winsock2.h>
#include<stdio.h>
void main()
{
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2),&wsaData);
SOCKET connSock=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN servAddr;
servAddr.sin_family=AF_INET;
servAddr.sin_port=htons(9878);
servAddr.sin_addr.s_addr=inet_addr("127.0.0.1");

connect(connSock,(SOCKADDR*)&servAddr,sizeof(SOCKADDR_IN));
char buf[11];
recv(connSock,buf,11,0);//连上后,可直接接受信息
printf("%s",buf);
}

服务器端:

#pragma comment(lib,"ws2_32.lib")
#include<winsock2.h>
void main()
{
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2),&wsaData);
SOCKET servSock,cliSock;
SOCKADDR_IN servAddr;
servAddr.sin_family=AF_INET;
servAddr.sin_port=htons(9878);
servAddr.sin_addr.s_addr=htonl(INADDR_ANY);
servSock=socket(AF_INET,SOCK_STREAM,0);
bind(servSock,(SOCKADDR*)&servAddr,sizeof(SOCKADDR_IN));
listen(servSock,5);
while(true)
{
cliSock=accept(servSock,NULL,NULL);//当客户机连接上后就可以直接发信息
send(cliSock,"hello world",11,0);
}
}

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧