資源簡介
使用winsocket 實現了簡單的即時通信程序

代碼片段和文件信息
#include?
#include?
#include?//winsock2?error???
using?namespace?std;
WSADATA??????????????wsaData;
SOCKET???????????????sConnect;
SOCKET???????????????sServer;?
SOCKADDR_IN??????????serverAddr;??????
int??????????????????recvbytes;
int??????????????????nResult;
char?????????????????buf[180];
char?????????????????message[180];
HANDLE?hthread1;
HANDLE?hthread2;
bool???judge=false;
#define?SERVPORT????5050????????
#define?SERVIP??????“127.0.0.1“??????
#pragma?comment(lib“ws2_32.lib“)
DWORD?WINAPI?rec(LPVOID?pParam);
DWORD?WINAPI?sen(LPVOID?pParam);
int?main(int?argc?char?*argv[])
{
WSAStartup(MAKEWORD(22)?&wsaData);
sConnect?=?socket(AF_INET?SOCK_STREAM?IPPROTO_TCP);
serverAddr.sin_family?=?AF_INET;
serverAddr.sin_port?=?htons(SERVPORT);???
serverAddr.sin_addr.s_addr?=?inet_addr(SERVIP);
memset(&(serverAddr.sin_zero)?0?sizeof(serverAddr.sin_zero));
if?(connect(sConnect?(SOCKADDR?*)&serverAddr?sizeof(SOCKADDR))?==?SOCKET_ERROR)
{
printf(“connect?failed!\n“);
return?0;
}
cout<<“hello?world!!!!“< hthread1=CreateThread(NULL?0recNULL0NULL);
hthread2=CreateThread(NULL?0senNULL0NULL);
CloseHandle(hthread1);
CloseHandle(hthread2);
closesocket(sConnect);
WSACleanup();
return?0;
}
DWORD?WINAPI?rec(LPVOID?pParam)
{
if?(judge!=true)
{
recvbytes?=?recv(sConnect?buf?180?0);
if?(recvbytes?==?SOCKET_ERROR)
{
cout<<“receive?failed“< }
else
{
buf[recvbytes]?=?‘\0‘;
printf(“%s\n“buf);
}
}
return?0;
}
DWORD?WINAPI?sen(LPVOID?pParam)
{
if?(judge!=true)
{
cin>>message;
if?(message==“exit“)
{
judge=true;
return?0;
}
nResult?=?send(sServer?message?16?0);
if?(nResult?==?SOCKET_ERROR)
{
printf(“send?failed!“);
}
}
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????53248??2008-11-01?10:11??msg_S\debug\msg_C.exe
?????文件?????407916??2008-11-01?10:11??msg_S\debug\msg_C.ilk
?????文件?????535552??2008-11-01?10:11??msg_S\debug\msg_C.pdb
?????文件??????53248??2008-11-01?10:11??msg_S\debug\msg_S.exe
?????文件?????418360??2008-11-01?10:11??msg_S\debug\msg_S.ilk
?????文件?????535552??2008-11-01?10:11??msg_S\debug\msg_S.pdb
?????文件???????1895??2008-11-01?10:11??msg_S\msg_C\c.cpp
?????文件???????9462??2008-11-01?10:11??msg_S\msg_C\Debug\BuildLog.htm
?????文件??????57203??2008-11-01?10:11??msg_S\msg_C\Debug\c.obj
?????文件????????403??2008-11-01?10:11??msg_S\msg_C\Debug\msg_C.exe.em
?????文件????????468??2008-11-01?10:11??msg_S\msg_C\Debug\msg_C.exe.em
?????文件????????385??2008-11-01?10:11??msg_S\msg_C\Debug\msg_C.exe.intermediate.manifest
?????文件?????????69??2008-11-01?10:11??msg_S\msg_C\Debug\mt.dep
?????文件?????412672??2008-11-01?10:11??msg_S\msg_C\Debug\vc80.idb
?????文件?????225280??2008-11-01?10:11??msg_S\msg_C\Debug\vc80.pdb
?????文件???????3979??2008-10-30?23:14??msg_S\msg_C\msg_C.vcproj
?????文件???????1411??2008-11-01?10:23??msg_S\msg_C\msg_C.vcproj.25HOURS.hua.user
?????文件???????9434??2008-11-01?10:11??msg_S\msg_S\Debug\BuildLog.htm
?????文件????????403??2008-11-01?10:11??msg_S\msg_S\Debug\msg_S.exe.em
?????文件????????468??2008-11-01?10:11??msg_S\msg_S\Debug\msg_S.exe.em
?????文件????????385??2008-11-01?10:11??msg_S\msg_S\Debug\msg_S.exe.intermediate.manifest
?????文件?????????69??2008-11-01?10:11??msg_S\msg_S\Debug\mt.dep
?????文件??????58204??2008-11-01?10:11??msg_S\msg_S\Debug\s.obj
?????文件?????412672??2008-11-01?10:11??msg_S\msg_S\Debug\vc80.idb
?????文件?????225280??2008-11-01?10:11??msg_S\msg_S\Debug\vc80.pdb
?????文件???????3979??2008-10-30?23:14??msg_S\msg_S\msg_S.vcproj
?????文件???????1411??2008-11-01?10:23??msg_S\msg_S\msg_S.vcproj.25HOURS.hua.user
?????文件???????2484??2008-11-01?10:11??msg_S\msg_S\s.cpp
?????文件???12889088??2008-11-01?10:23??msg_S\msg_S.ncb
?????文件???????1333??2008-10-30?23:14??msg_S\msg_S.sln
............此處省略10個文件信息
- 上一篇:數值分析講義 word版
- 下一篇:Response2000
評論
共有 條評論