服务器端代码:
// socketTest.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <winsock.h>
#pragma comment (lib,"ws2_32.lib")
#define MAXBUFLEN 256
#define PORT 44965
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
WSADATA Data;
SOCKADDR_IN serverSockAddr;
SOCKADDR_IN clientSockAddr;
SOCKET serversocket; //其实就是一个unsig int类型,用来记录已经建立或者尚未建立的套接字号
SOCKET clientsocket;
int addrlen = sizeof(SOCKADDR_IN); //16
int status;
int numrcv;
char buffer[MAXBUFLEN];
//初始化windows Socket Dll
status = WSAStartup(MAKEWORD(1,1),&Data);
if (0!=status)
{
cout<<"初始化失败"<<endl;
}
//清0
memset(&serverSockAddr,0,sizeof(serverSockAddr));
//初始化
serverSockAddr.sin_port = htons(PORT);
serverSockAddr.sin_family = AF_INET; //指定地址协议族
serverSockAddr.sin_addr.s_addr = htonl(INADDR_ANY); //初始化ip地址0,0,0,0 任何ip都可以连接
//创建套接字
serversocket = socket(AF_INET,SOCK_STREAM/*套接字类型*/,0/*套接字使用的特定协议*/);
if (INVALID_SOCKET == serversocket)
{
cout<<"创建socket失败"<<endl;
}
//绑定socket到特定地址(结构体地址)
status = bind(serversocket,(LPSOCKADDR)&serverSockAddr,sizeof(serverSockAddr));
if (SOCKET_ERROR==status)
{
cout<<"绑定地址失败"<<endl;
}
//允许外