您的位置:首页 > 理论基础 > 计算机网络

CodeBlocks下的C语言网络编程

2009-02-16 15:09 417 查看
#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!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: