扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:青岛朗锐 来源:yesky 2007年10月22日
关键字:
sock=socket(AF_INET,SOCK_STREAM,0); |
…… sockin.sin_family=AF_INET; sockin.sin_addr.s_addr=0; sockin.sin_port=htons(USERPORT); bind(sock,(LPSOCKADDR)&sockin,sizeof(sockin)); …… |
listen(sock,1); |
AfxBeginThread(Server,NULL);//创建一个新的线程 …… UINT Server(LPVOID lpVoid)//线程的处理函数 { //获取当前视类的指针,以确保访问的是当前的实例对象。 CNetServerView* pView=((CNetServerView*)( (CFrameWnd*)AfxGetApp()->m_pMainWnd)->GetActiveView()); while(pView->nNumConns<1)//当前的连接者个数 { int nLen=sizeof(SOCKADDR); pView->newskt= accept(pView->sock, (LPSOCKADDR)& pView->sockin,(LPINT)& nLen); WSAAsyncSelect(pView->newskt, pView->m_hWnd,WM_SOCKET_MSG,FD_CLOSE); pView->nNumConns++; } return 1; } |
char buffer[1]={'a'}; send(newskt,buffer,1,0);//向客户机发送字符a,表示现在服务器正在拨号。 |
…… m_ServIP=SERVERIP; //指定服务器的IP地址 m_Port=htons(USERPORT); //指定服务器的端口号 if((IPaddr=inet_addr(m_ServIP))==INADDR_NONE) //转换成网络地址 return FALSE; else { sock=socket(AF_INET,SOCK_STREAM,0); //创建套接字 sockin.sin_family=AF_INET; //填充结构 sockin.sin_addr.S_un.S_addr=IPaddr; sockin.sin_port=m_Port; connect(sock,(LPSOCKADDR)&sockin,sizeof(sockin)); //建立连接 //设定异步选择事件 WSAAsyncSelect(sock,m_hWnd,WM_SOCKET_MSG,FD_CLOSE|FD_READ); //在这里可以通过震铃、弹出对话框等方式通知客户已经连上服务器 } …… //网络事件的消息处理函数 int message=lParam & 0x0000FFFF;//取消息参数的低位 switch(message) //判断发生的是何种网络事件 { case FD_READ: //读事件 AfxBeginThread(Read,NULL); break; case FD_CLOSE: //服务器关闭事件 …… break; } |
…… int a=recv(pView->sock,cDataBuffer,1,0); //接收从服务器发送来的消息 if(a>0) AfxMessageBox("拨号连接已启动!"); //通知用户 …… |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者