标题:求一个CSocket客户端和服务器端的代码片段
只看楼主
弱智抓蛙男
Rank: 1
等 级:新手上路
帖 子:264
专家分:0
注 册:2006-11-24
 问题点数:0 回复次数:2 
求一个CSocket客户端和服务器端的代码片段

有基本的消息发送和消息接受函数就行了
起步阶段,望施与援手~

搜索更多相关主题的帖子: 服务器 CSocket 客户端 片段 代码 
2007-01-06 13:18
niewucai
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-7-22
得分:0 
我自己简单的写的,是从我的一个用MFC做的程序里面剪出来的,不了解的地方可以来问我,其实我也是刚开始编网络程序
我的QQ:531119186
(1)服务端
SOCKET Server;
struct sockaddr_in Cli;
char buf[50]="你好,我是服务端!";
char Revdata[50];
CString Status;
while(1)
{
if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)
{
MessageBox("socket 创建失败!","",MB_OK|MB_ICONERROR);
}
else {
Status.Format("socket创建成功!\r\n");
//SetDlgItemText(IDC_EDIT1,Status);
m_status.ReplaceSel(Status);
UpdateData(FALSE);
}
Server=socket(AF_INET,SOCK_STREAM,0);
Cli.sin_family=AF_INET;
Cli.sin_port=htons(DEFAULT_PORT);
Cli.sin_addr.s_addr=htonl(INADDR_ANY);
//Cli.sin_addr.s_addr=inet_addr("192.18.109.6");
if(bind(Server,(struct sockaddr*)&Cli,sizeof(Cli))==SOCKET_ERROR)
{
MessageBox("绑定本地地址失败!","反馈信息",MB_OK|MB_ICONERROR);
return ;
}
else {
Status="成功绑定本地地址!\r\n";
//SetDlgItemText(IDC_EDIT1,Status);
m_status.ReplaceSel(Status);
UpdateData(TRUE);
}
sListen=listen(Server,5);
if(sListen==SOCKET_ERROR)
{
MessageBox("侦听失败!","",MB_OK|MB_ICONINFORMATION);
return ;
}
else {

Status="服务端已经处于监听状态...\r\n";
//SetDlgItemText(IDC_EDIT1,Status);
m_status.ReplaceSel(Status);
//Sleep(100);
UpdateData(TRUE);
}
int sCli=sizeof(Cli);
SOCKET sAccept=accept(Server,(struct sockaddr*)&Cli,&sCli);
if(sAccept==INVALID_SOCKET)
{
Status="服务端接收失败!\r\n";
//SetDlgItemText(IDC_EDIT1,Status);
m_status.ReplaceSel(Status);
UpdateData(TRUE);
}
else
{
Status="连接客户端成功!\r\n";
CString IP;
IP.Format("有客户机已连接,对方IP:%s",inet_ntoa(Cli.sin_addr));
MessageBox(IP,"反馈消息",MB_OK|MB_ICONINFORMATION);
//SetDlgItemText(IDC_EDIT1,Status);
if(send(sAccept,buf,sizeof(buf),0)==SOCKET_ERROR)
{
Status="服务端发送数据失败!\r\n";
//SetDlgItemText(IDC_EDIT1,Status);
m_status.ReplaceSel(Status);
UpdateData(TRUE);
}
else
{
Status="服务端成功发送数据!\r\n";
//SetDlgItemText(IDC_EDIT1,Status);
m_status.ReplaceSel(Status);
UpdateData(TRUE);
}
closesocket(sAccept);
}
closesocket(sListen);
WSACleanup();
}
(1)客户端
SOCKET Client;
struct sockaddr_in Sev;
char buf[50];
memset(buf,'\0',sizeof(buf));
if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)
{
MessageBox("socket创建失败!","反馈信息",MB_OK|MB_ICONINFORMATION);
}
Client=socket(AF_INET,SOCK_STREAM,0);
Sev.sin_family=AF_INET;
Sev.sin_port=htons(DEFAULT_PORT);
Sev.sin_addr.s_addr=inet_addr("192.168.109.6");
//Sev.sin_addr.s_addr=htonl(INADDR_ANY);
int sConnect;
sConnect=connect(Client,(struct sockaddr*)&Sev,sizeof(Sev));
if(sConnect==SOCKET_ERROR)
{
MessageBox("连接服务端失败!","反馈信息",MB_OK|MB_ICONINFORMATION);
return ;
}
else
{
MessageBox("连接服务端成功!","反馈信息",MB_OK|MB_ICONINFORMATION);
}
if(recv(Client,buf,sizeof(buf),0)==SOCKET_ERROR)
{
MessageBox("接收失败!","反馈信息",MB_OK|MB_ICONINFORMATION);
return ;
}
else
{MessageBox("接收成功!","反馈信息",MB_OK|MB_ICONINFORMATION);
SetDlgItemText(IDC_EDIT1,buf);
}
closesocket(Client);
WSACleanup();

[此贴子已经被作者于2007-1-10 15:14:31编辑过]

2007-01-10 15:14
弱智抓蛙男
Rank: 1
等 级:新手上路
帖 子:264
专家分:0
注 册:2006-11-24
得分:0 
迟了点,
不过还是niewucai够义气
全贴出来了
十分感谢
看来vc.net人气不是很好
2007-01-13 15:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-114582-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014617 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved