- 注册时间
- 2011-3-6
- 最后登录
- 1970-1-1
该用户从未签到
|
#include "stdafx.h"
#include <WINSOCK2.H>
#include <iostream.h>
#pragma comment(lib,"ws2_32.lib")
int main(int argc, char* argv[])
{
SOCKET m_sock,accsock;
WSADATA wsaData;
if (0 !=WSAStartup(MAKEWORD(2,2),&wsaData))
{
cout<<"加载套接字失败!\n";
return 0;
}
m_sock = socket(AF_INET,SOCK_STREAM,0);
if (m_sock==INVALID_SOCKET)
{
cout<<"socket失败!\n";
return 0;
}
sockaddr_in baddr;
baddr.sin_family=AF_INET;
baddr.sin_port=htons(6789);
baddr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
if (SOCKET_ERROR==bind(m_sock,(sockaddr*)&baddr,sizeof(sockaddr_in)))
{
cout<<"bind失败!\n";
closesocket(m_sock);
WSACleanup();
return 0;
}
if (SOCKET_ERROR == listen(m_sock,5))
{
cout<<"listen失败!\n";
closesocket(m_sock);
WSACleanup();
return 0;
}
cout<<"listen完成!\n";
sockaddr_in accaddr;
int accint = sizeof(sockaddr_in);
accsock = accept(m_sock,(sockaddr*)&accaddr,&accint);
if (accsock==INVALID_SOCKET)
{
cout<<"accept失败!\n";
closesocket(m_sock);
WSACleanup();
}
cout<<"有客户端连接了\n";
int bSend = send(accsock,"欢迎你登录!",sizeof("欢迎你登录!"),0);
if (bSend<=0)
{
cout<<"发送消息失败!";
closesocket(m_sock);
closesocket(accsock);
WSACleanup();
}
while (1)
{
char buff[256]={0};
int bRecv = recv(accsock,buff,sizeof(buff),0);
if (bRecv==SOCKET_ERROR )
{
cout<<"接收消息失败!";
Sleep(50);
continue;
}
cout<<buff<<endl;
char sbuff[256]={0};
cin>>sbuff;
int bSend1 = send(accsock,sbuff,sizeof(sbuff),0);
if (bRecv==SOCKET_ERROR )
{
cout<<"发送消息失败!";
Sleep(50);
continue;
}
}
return 0;
} |
|