64,682
社区成员
发帖
与我相关
我的任务
分享
AfxSocketInit();
CSocket aSocket;
CString strIP;
CString strPort;
CString strText;
this->GetDlgItem(IDC_EDIT_IP)->GetWindowText(strIP);
this->GetDlgItem(IDC_EDIT_PORT)->GetWindowText(strPort);
this->GetDlgItem(IDC_EDIT_TEXT)->GetWindowText(strText);
if(!aSocket.Create())
{
char szMsg[1024] = {0};
sprintf(szMsg, "create faild: %d", aSocket.GetLastError());
AfxMessageBox(szMsg);
return;
}
int nPort = atoi(strPort);
if(aSocket.Connect(strIP, nPort))
{
for(int i=0;i<100;i++)
{
char szRecValue[1024] = {0};
aSocket.Send(strText, strText.GetLength());
int iiRecdx=aSocket.Receive((void *)szRecValue, 1024);
if(iiRecdx==-1){
iiRecdx=GetLastError();
sprintf(szRecValue, "===CA返回数据错误码,错误代码为[%d]",iiRecdx);
}
Sleep(2000);
//AfxMessageBox(szRecValue);
}
//AfxMessageBox(szRecValue);
}
else
{
char szMsg[1024] = {0};
sprintf(szMsg, "create faild: %d", aSocket.GetLastError());
AfxMessageBox(szMsg);
}
aSocket.Close();
for(int i=0;i<100;i++)
{
if(!aSocket.Create())
{
char szMsg[1024] = {0};
sprintf(szMsg, "create faild: %d", aSocket.GetLastError());
AfxMessageBox(szMsg);
return;
}
int nPort = atoi(strPort);
if(aSocket.Connect(strIP, nPort))
{
char szRecValue[1024] = {0};
aSocket.Send(strText, strText.GetLength());
int iiRecdx=aSocket.Receive((void *)szRecValue, 1024);
if(iiRecdx==-1){
iiRecdx=GetLastError();
sprintf(szRecValue, "===CA返回数据错误码,错误代码为[%d]",iiRecdx);
}
Sleep(2000);
//AfxMessageBox(szRecValue);
//AfxMessageBox(szRecValue);
}
else
{
char szMsg[1024] = {0};
sprintf(szMsg, "create faild: %d", aSocket.GetLastError());
AfxMessageBox(szMsg);
}
aSocket.Close();
}
CWinThread *pThread = NULL;
bool m_exit = false;
//线程函数
unsigned int StartServer(LPVOID lParam)
{
WSADATA wsaData;
WORD wVersionRequested = MAKEWORD(1, 1);
int nResult = WSAStartup(wVersionRequested, &wsaData);
if (nResult != 0)
{
return 1;
}
m_exit = false;
CServerDlg *aDlg = (CServerDlg *)lParam;
CString strPort;
aDlg->GetDlgItemText(IDC_EDIT_PORT, strPort);
UINT nPort = atoi(strPort);
//socket------------------------------------------------
SOCKET aSocket, serverSocket;
sockaddr_in serverSockaddr;
memset(&serverSockaddr, 0, sizeof(serverSockaddr));
aSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (aSocket == INVALID_SOCKET)
{
char szError[256] = {0};
sprintf(szError, "Create Faild: %d", GetLastError());
AfxMessageBox(szError);
return 1;
}
BOOL bOptVal = TRUE;
int bOptLen = sizeof(BOOL);
setsockopt(aSocket, SOL_SOCKET, SO_REUSEADDR, (char *)&bOptVal, bOptLen);
sockaddr_in aSockaddr;
memset(&aSockaddr,0,sizeof(aSockaddr));
aSockaddr.sin_family = AF_INET;
aSockaddr.sin_addr.s_addr = htonl(INADDR_ANY);
aSockaddr.sin_port = htons((u_short)nPort);
if(bind(aSocket,(sockaddr *)&aSockaddr, sizeof(aSockaddr)) == SOCKET_ERROR)
{
char szError[256] = {0};
sprintf(szError, "Bind Faild: %d", GetLastError());
AfxMessageBox(szError);
return 1;
}
if(listen(aSocket, 10) == SOCKET_ERROR)
{
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! \r\n";
aDlg->SetDlgItemText(IDC_EDIT_LOG, strText);
while(!m_exit)
{
serverSocket = accept(aSocket, (sockaddr *)&serverSockaddr, 0);
if(serverSocket == INVALID_SOCKET)
{
continue;
}
else
{
char szRecvMsg[256] = {0};
char szOutMsg[256] = {0};
recv(serverSocket, szRecvMsg, 256, 0);
sprintf(szOutMsg, "Receive Msg: %s \r\n", szRecvMsg);
aDlg->GetDlgItemText(IDC_EDIT_LOG, strText);
strText += szOutMsg;
aDlg->SetDlgItemText(IDC_EDIT_LOG, strText);
send(serverSocket, "Have Receive The Msg", 50, 0);
closesocket(serverSocket);
}
}
closesocket(aSocket);
closesocket(serverSocket);
aDlg->GetDlgItemText(IDC_EDIT_LOG, strText);
strText += "Have Close!";
aDlg->SetDlgItemText(IDC_EDIT_LOG, strText);
WSACleanup();
return 0;
}