- VC+Socket网络通讯示例收藏
- 服务器端示例代码
- #include<stdio.h>
- #include<winsock.h>
- #include<windows.h>
- #defineSERVER_SOCKET_ERROR1
- #defineSOCKET_OK0
- #pragmacomment(lib,"wsock32.lib")
- voidsocketError(char*);
- intWINAPIWinMain(HINSTANCEhInst,HINSTANCEhPrevInstance,
- LPSTRlpCmdLine,intnShow)
- {
- WORDsockVersion;
- WSADATAwsaData;
- intrVal;
- sockVersion=MAKEWORD(1,1);
- //startdll
- WSAStartup(sockVersion,&wsaData);
- //createsocket
- SOCKETs=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);
- if(s==INVALID_SOCKET)
- {
- socketError("Failedsocket()");
- WSACleanup();
- returnSERVER_SOCKET_ERROR;
- }
- //fillinsockaddr_instruct
- SOCKADDR_INsin;
- sin.sin_family=PF_INET;
- sin.sin_port=htons(8888);
- sin.sin_addr.s_addr=INADDR_ANY;
- //bindthesocket
- rVal=bind(s,(LPSOCKADDR)&sin,sizeof(sin));
- if(rVal==SOCKET_ERROR)
- {
- socketError("Failedbind()");
- WSACleanup();
- returnSERVER_SOCKET_ERROR;
- }
- //getsockettolisten
- rVal=listen(s,2);
- if(rVal==SOCKET_ERROR)
- {
- socketError("Failedlisten()");
- WSACleanup();
- returnSERVER_SOCKET_ERROR;
- }
- //waitforaclient
- SOCKETclient;
- client=accept(s,NULL,NULL);
- if(client==INVALID_SOCKET)
- {
- socketError("Failedaccept()");
- WSACleanup();
- returnSERVER_SOCKET_ERROR;
- }
- //closeprocess
- closesocket(client);
- closesocket(s);
- WSACleanup();
- returnSOCKET_OK;
- };
- voidsocketError(char*str)
- {
- MessageBox(NULL,str,"SOCKETERROR",MB_OK);
- };
- 客户端示例代码
- #include<windows.h>
- #include<winsock.h>
- #pragmacomment(lib,"wsock32.lib")
- #defineCS_ERROR1
- #defineCS_OK0
- voidsError(char*);
- intWINAPIWinMain(HINSTANCEhHinst,HINSTANCEhPrevHinst,LPSTRlpCmdLine,
- intnShow)
- {
- WORDversion;
- WSADATAwsaData;
- intrVal=0;
- version=MAKEWORD(1,1);
- WSAStartup(version,(LPWSADATA)&wsaData);
- LPHOSTENThostEntry;
- //storeinformationabouttheserver
- hostEntry=gethostbyname("hibbert");
- if(!hostEntry)
- {
- sError("Failedgethostbyname()");
- //WSACleanup();
- returnCS_ERROR;
- }
- //createthesocket
- SOCKETtheSocket=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);
- if(theSocket==SOCKET_ERROR)
- {
- sError("Failedsocket()");
- returnCS_ERROR;
- }
- //Fillinthesockaddr_instruct
- SOCKADDR_INserverInfo;
- serverInfo.sin_family=PF_INET;
- serverInfo.sin_addr=*((LPIN_ADDR)*hostEntry->h_addr_list);
- serverInfo.sin_port=htons(8888);
- rVal=connect(theSocket,(LPSOCKADDR)&serverInfo,sizeof(serverInfo));
- if(rVal==SOCKET_ERROR)
- {
- sError("Failedconnect()");
- returnCS_ERROR;
- }
- closesocket(theSocket);
- WSACleanup();
- MessageBox(NULL,"Connectionwasmade","SOCKET",MB_OK);
- returnCS_OK;
- }
- voidsError(char*str)
- {
- MessageBox(NULL,str,"SOCKETERROR",MB_OK);
- WSACleanup();
- }
VC+Socket 网络通讯示例
最新推荐文章于 2023-11-04 08:41:14 发布