#include <stdio.h>
#include "winsock2.h"
void NetServer()
{
//----------------------
// Initialize Winsock
WSADATA wsaData;
int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
if (iResult != NO_ERROR)
printf("Error at WSAStartup()/n");
//-------------------------------------------------------
// Create a SOCKET for connecting to server
SOCKET ConnectSocket;
ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (ConnectSocket == INVALID_SOCKET)
{
printf("Error at socket(): %ld/n", WSAGetLastError());
WSACleanup();
return;
}
//-------------------------------------------------------
int fd;
int address_len;
struct sockaddr_in address;
//建立套接口
fd = socket(AF_INET, SOCK_STREAM, 0);
//绑定地址和端口
address.sin_family = AF_INET;
address.sin_addr.s_addr = htonl(INADDR_ANY);
address.sin_port = htons(1234);
address_len = sizeof(address);
bind(fd, (struct sockaddr *)&address, address_len);
//建立套接口队列
listen(fd, 5);
while(1)
{
struct sockaddr_in client_address;
int len;
int client_sockfd;
char *data = "Server to Client String!/n";
char data2[100];
printf("waiting...");
fflush(stdout);
//等待
len = sizeof(client_address);
client_sockfd = accept(fd,
(struct sockaddr *)&client_address, &len);
//接收数据
recv(client_sockfd, (void *)data2, 100,0);
printf("server read line:%s", data2);
//发送数据
send(client_sockfd, (void *)data, strlen(data),0);
printf("server send line:%s", data);
//关闭联接
closesocket(client_sockfd);
}
}
编译后出错,然后在CodeBlocks中手动添加WSock32.Lib库,如果电脑中安装了vc,那么在电脑中搜索这个文件名:WSock32.Lib,在CodeBlocks项目文件夹中添加一个lib文件夹,把搜到的WSock32.Lib文件拷贝到lib文件夹中,然后在CodeBlocks中点击:Setting->Compiler and Debugger Settings,找到Link Settings,点击Add按钮,把lib文件夹中的WSock32.Lib添加进去,编译,OK!