????SOCKET????????
// IOCPClient.cpp : ??????????ó????????
//
#include "stdafx.h"
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <winsock2.h>
#include <Windows.h>
using namespace std;
#pragma comment(lib?? "Ws2_32.lib")      // Socket???????????????
SOCKET sockClient;      // ??????????????
HANDLE bufferMutex;     // ???????????????????????????
const int DefaultPort = 9999;
int _tmain(int argc?? _TCHAR* argv[])
{
// ????socket????????(dll)
WORD wVersionRequested;
WSADATA wsaData;    // ????????????Wjndows Socket????????
wVersionRequested = MAKEWORD( 2?? 2 );   // ????2.2?汾??WinSock??
int err = WSAStartup( wVersionRequested?? &wsaData );
if ( err != 0 ) {   // ???????????????????????WSAStartup
return -1;
}
if ( LOBYTE( wsaData.wVersion ) != 2 || HIBYTE( wsaData.wVersion ) != 2 ) { // ???汾????????
WSACleanup( );
return -1;
}
// ????socket?????????????????????????????sockClient
sockClient = socket(AF_INET?? SOCK_STREAM?? 0);
if(sockClient == INVALID_SOCKET) {
printf("Error at socket():%ld "?? WSAGetLastError());
WSACleanup();
return -1;
}
// ???????sockClient?????????????
// int connect( SOCKET s??  const struct sockaddr* name??  int namelen);
// ????????????????????????????????
// ????????????趨???????????????
// ????????????????????
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");      // ?????·?????127.0.0.1;
addrSrv.sin_family = AF_INET;
addrSrv.sin_port = htons(DefaultPort);
while(SOCKET_ERROR == connect(sockClient?? (SOCKADDR*)&addrSrv?? sizeof(SOCKADDR))){
// ??????????????????????????
cout << "????????????????????????????Y/N):";
char choice;
while(cin >> choice && (!((choice != 'Y' && choice == 'N') || (choice == 'Y' && choice != 'N')))){
cout << "?????????????????:";
cin.sync();
cin.clear();
}
if (choice == 'Y'){
continue;
}
else{
cout << "???????...";
system("pause");
return 0;
}
}
cin.sync();
cout << "???????????????????????????????????????????????? ";
send(sockClient?? " Attention: A Client has enter... "?? 200?? 0);
bufferMutex = CreateSemaphore(NULL?? 1?? 1?? NULL);
DWORD WINAPI SendMessageThread(LPVOID IpParameter);
DWORD WINAPI ReceiveMessageThread(LPVOID IpParameter);
HANDLE sendThread = CreateThread(NULL?? 0?? SendMessageThread?? NULL?? 0?? NULL);
HANDLE receiveThread = CreateThread(NULL?? 0?? ReceiveMessageThread?? NULL?? 0?? NULL);
WaitForSingleObject(sendThread?? INFINITE);  // ?????????
closesocket(sockClient);
CloseHandle(sendThread);
CloseHandle(receiveThread);
CloseHandle(bufferMutex);
WSACleanup();   // ???????????????
printf("End linking... ");
printf(" ");
system("pause");
return 0;
}
DWORD WINAPI SendMessageThread(LPVOID IpParameter)
{
while(1){
string talk;
char talkbuffer[200];
//gets(talkbuffer);
int iRand = rand()%3;
Sleep(iRand * 1000);
if(1 == iRand)
{
talkbuffer[0]='0';
}
else
{
talkbuffer[0]='1';
}
talkbuffer[1] = ' 主站蜘蛛池模板: 制服丝袜第一页在线 | 婷婷在线成人免费观看搜索 | 老外一级毛片免费看 | 波多野在线视频 | 国产精品不卡 | 国产精品久久久久影院色老大 | 青草视频在线观看视频 | 免费国产小视频 | 波多野结衣在线观看视频 | 亚洲国产精久久久久久久 | 久久免费手机视频 | 午夜欧美精品久久久久久久久 | 最新三级网站 | 中文字幕日本一区久久 | 欧美激情αv一区二区三区 欧美激情xxxx | 日韩一区二区三区中文字幕 | 一级韩国aa毛片免费观看 | 国产精品亚洲二区 | 亚洲欧美在线中文字幕不卡 | 亚洲一区二区成人 | 午夜高清在线观看 | 欧美 日本| 亚洲激情 | 国产 另类 在线 欧美日韩 | 午夜国产精品久久影院 | 很黄很黄叫声床戏免费视频 | 精品视频一区二区三三区四区 | 日皮视频免费观看 | 欧美视频高清在线观看 | 全免费a级毛片免费看视频免 | 国产欧美日韩在线观看无需安装 | 狠狠做狠狠做综合日日 | 三级网站免费 | 欧美日本视频在线观看 | 香蕉视频老司机 | 天天射天天操天天 | 色一把 | 色偷偷人人澡人人爽人人模 | 亚洲国产高清一区二区三区 | 两性色午夜视频自由成熟的性 | 人人澡人人人人夜夜爽 |