CodeBlocks下的C语言网络编程

来源:互联网 发布:windows 7恢复出厂设置 编辑:程序博客网 时间:2024/05/28 15:28

#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!

 

原创粉丝点击