Csocket 服务器端
来源:互联网 发布:爱知世博会logo是什么 编辑:程序博客网 时间:2024/05/13 15:55
unsigned int StartServer(LPVOID lParam)
{
//初始化Winscok
if (!AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return 1;
}
m_exit = false;
CServerDlg *aDlg = (CServerDlg *)lParam;
CString strPort;
aDlg->GetDlgItemText(IDC_EDIT_PORT, strPort);
UINT nPort = atoi(strPort);
//socket------------------------------------------------
CSocket aSocket, serverSocket;
//最好不要使用aSocket.Create创建,因为容易会出现10048错误
if (!aSocket.Socket())
{
char szError[256] = {0};
sprintf(szError, "Create Faild: %d", GetLastError());
AfxMessageBox(szError);
return 1;
}
BOOL bOptVal = TRUE;
int bOptLen = sizeof(BOOL);
//设置Socket的选项, 解决10048错误必须的步骤
aSocket.SetSockOpt(SO_REUSEADDR, (void *)&bOptVal, bOptLen, SOL_SOCKET);
//监听
if(!aSocket.Listen(10))
{
char szError[256] = {0};
sprintf(szError, "Listen Faild: %d", GetLastError());
AfxMessageBox(szError);
return 1;
}
CString strText;
aDlg->GetDlgItemText(IDC_EDIT_LOG, strText);
strText += "Server Start! ";
aDlg->SetDlgItemText(IDC_EDIT_LOG, strText);
while(!m_exit)
{
//接收外部连接
if(!aSocket.Accept(serverSocket))
{
continue;
}
else
{
char szRecvMsg[256] = {0};
char szOutMsg[256] = {0};
//接收客户端内容:阻塞
serverSocket.Receive(szRecvMsg, 256);
sprintf(szOutMsg, "Receive Msg: %s ", szRecvMsg);
aDlg->GetDlgItemText(IDC_EDIT_LOG, strText);
strText += szOutMsg;
aDlg->SetDlgItemText(IDC_EDIT_LOG, strText);
//发送内容给客户端
serverSocket.Send("Have Receive The Msg", 50);
//关闭
serverSocket.Close();
}
}
//关闭
aSocket.Close();
serverSocket.Close();
aDlg->GetDlgItemText(IDC_EDIT_LOG, strText);
strText += "Have Close!";
aDlg->SetDlgItemText(IDC_EDIT_LOG, strText);
return 0;
}
//绑定端口
if (!aSocket.Bind(nPort))
{
char szError[256] = {0};
sprintf(szError, "Bind Faild: %d", GetLastError());
AfxMessageBox(szError);
return 1;
}
- Csocket 服务器端
- CSocket、winsock
- Csocket基本原理
- csocket 相关
- CSocket问题
- Csocket基本原理
- MFC CSocket
- MFC CSocket
- CSocket详解
- CSocket详解
- 服务器端
- 服务器端
- MFC下CSocket编程详解(CSocket 多线程)
- CSOCKET文件传输函数
- MFC的Csocket类
- CSocket类编程模型
- Socket,CAsyncSocket,CSocket介绍
- CAsyncSocket,CSocket的使用方法
- 基于嵌入式操作系统VxWorks的多任务并发程序设计(2) ――任务控制
- 判定.NET Framework 1.1 是否有裝SP1
- QBQ 读后感
- 归纳一下:C#线程同步的几种方法
- Android的webview加载本地html、本apk内html和远程URL
- Csocket 服务器端
- 黄河与长江的传说
- DirectDraw 示例
- 集合算法:实现D森林
- eclipse下配置Resin
- issue about image displayed base on IE6, IE7,IE8, and Fire fox
- JS 窗口最大化
- ASP.NET中如何动态获取表的字段来填充到DropDownList中
- NFS 伺服器