64,636
社区成员
发帖
与我相关
我的任务
分享
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
SOCKET servSock;
SOCKADDR_IN servAddr,clientAddr;
public:
CEdit m_Dlg;
CEdit m_Send;
afx_msg void OnTimer(UINT_PTR nIDEvent);
CButton m_OK;
BOOL CServerDlg::OnInitDialog()
{
CDialog::OnInitDialog();
...............
// TODO: 在此添加额外的初始化代码
servSock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if (servSock==INVALID_SOCKET)
{
AfxMessageBox(_T("服务器套接字创建失败!"));
return FALSE;
}
//////////////////////////////////////////////////////////////////////////
servAddr.sin_family=PF_INET;
servAddr.sin_port=htons(5000);
servAddr.sin_addr.s_addr=inet_addr("59.66.134.170");
SetTimer(1,1,NULL);
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
void CServerDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
//////////////////////////////////////////////////////////////////////////
//if(Flag==1)return;
u_long u=1;
if (int n=bind(servSock,(LPSOCKADDR)&servAddr,sizeof(servAddr))==SOCKET_ERROR)
{
m_Dlg.SetWindowText(_T("服务器绑定失败!"));
int c=WSAGetLastError();
// closesocket(servSock);
return ;//FALSE;
}
else
{
Flag++;
ioctlsocket(servSock,FIONBIO,(unsigned long*)&u);
int len;
len=sizeof(clientAddr);
listen(servSock,30);
SOCKET newSock;
newSock=accept(servSock,(sockaddr FAR*)&clientAddr,&len);
if (newSock==INVALID_SOCKET)
{
m_Dlg.SetWindowText(_T("服务器接受失败!"));
// closesocket(servSock);
return ;//FALSE;
}
else
{
m_Send.SetWindowText(_T("服务器接收成功"));
char ch[20]={0},c[]={"sdf"};
int n=send(newSock,c,sizeof(c),0);
if(n==sizeof(c))AfxMessageBox(_T("发送成功"));
int r=recv(newSock,ch,20,0);
if(r<0)
{
int d=WSAGetLastError();
// closesocket(servSock);
AfxMessageBox(_T("接收失败!"));
return ;//FALSE;
}
else if(r==0)AfxMessageBox(_T("传送完毕!"));
else
{
CString str;
str.Format(_T("%s"),ch);
m_Send.SetWindowText(str);
}
}
}
CDialog::OnTimer(nIDEvent);
}
BOOL CClientDlg::OnInitDialog()
{
CDialog::OnInitDialog();
.............
// TODO: 在此添加额外的初始化代码
clientSock=socket(AF_INET,SOCK_STREAM,0);
if (clientSock==INVALID_SOCKET)
{
AfxMessageBox(_T("客户端套接字创建失败!"));
return FALSE;
}
//////////////////////////////////////////////////////////////////////////
clientAddr.sin_family=AF_INET;
clientAddr.sin_port=htons(5000);
clientAddr.sin_addr.s_addr=inet_addr("59.66.134.170");
//////////////////////////////////////////////////////////////////////////
if(connect(clientSock,(LPSOCKADDR)&clientAddr,sizeof(clientAddr))==SOCKET_ERROR)
{
int t=WSAGetLastError();
closesocket(clientSock);
m_Dlg.SetWindowText(_T("客户端连接失败"));
return FALSE;
}
else m_Dlg.SetWindowText(_T("连接成功"));
char ch[]={"sdf"};
int n=send(clientSock,ch,sizeof(ch),0);
if(n==SOCKET_ERROR)
m_Dlg.SetWindowText(_T("发送失败"));
if(n==sizeof(ch)) m_Dlg.SetWindowText(_T("发送成功"));
int c=WSAGetLastError();
//////////////////////////////////////////////////////////////////////////
u_long u=1;
ioctlsocket(clientSock,FIONBIO,(unsigned long*)&u);
SetTimer(1,1,NULL);
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
void CClientDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if (clientSock!=INVALID_SOCKET)
{
char rec[100]={0};
if (recv(clientSock,rec,1024,0)<=0)
{
m_Send.SetWindowText(_T("客户端接收失败"));
// closesocket(clientSock);
return;
}
CString str;
str.Format(_T("%s"),rec);
m_Dlg.SetWindowText(str);
}
CDialog::OnTimer(nIDEvent);
}
BOOL CTabADlg::InitSocket()
{
m_ServerSock = socket(AF_INET,SOCK_STREAM,0); //初始化服务器SOCKET
// 服务器的服务设置
m_ServerAddr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
m_ServerAddr.sin_family=AF_INET;
m_ServerAddr.sin_port=htons(8001);
bind(m_ServerSock,(SOCKADDR*)&m_ServerAddr,sizeof(SOCKADDR)); //socket绑定端口
listen(m_ServerSock,10); //socket端口进入监听模式
RECVPARAM *pRecvParam = new RECVPARAM;
pRecvParam->sock = m_ServerSock;
pRecvParam->hwnd = m_hWnd;
HANDLE hThread = CreateThread(NULL,0,ThreadProc,(LPVOID)pRecvParam,0,NULL);
CloseHandle(hThread);
return TRUE;
}
u_long u=1;
ioctlsocket(servSock,FIONBIO,(unsigned long*)&u);
int len;
len=sizeof(clientAddr);
SOCKET newSock;
now=accept(servSock,(sockaddr FAR*)&clientAddr,&len);
if (now==INVALID_SOCKET)
{
m_Online.SetWindowText(_T("!!!"));
// closesocket(servSock);
return ;//FALSE;
}
else
{
m_Online.SetWindowText(_T("在线"));
、、 char ch[20]={0},c[]={"sdf"};
// int n=send(now,c,sizeof(c),0);
// if(n==sizeof(c))m_Send.SetWindowText(_T("发送成功"));
int r=recv(now,ch,1024,0);
if(r<0)
{
int d;
d=WSAGetLastError();
// closesocket(servSock);
// AfxMessageBox(_T("接收失败!"));
return ;//FALSE;
}
else if(r==0)m_Send.SetWindowText(_T("传送完毕!"));
else
{
CString str;
str.Format(_T("%s"),ch);
theword=theword+_T("\r\nYOU:")+str;
m_Dlg.SetWindowText(theword);
}
}