日富一日,加油 2021-12-05 11:41 采纳率: 100%
浏览 36
已结题

c语言你们用的啥编译器?我复制代码总不不能运行

#include <winsock2.h>
#include <stdio.h>
#include <stdlib.h>

#pragma comment(lib , "ws2_32.lib")

#define BUFSIZE 4096 /缓冲区大小/
#define PORT 0
#define IP 1

int main( )
{
WSADATA wsd;
SOCKET sClient;
char Buffer[BUFSIZE];
int ret;
struct sockaddr_in server;
unsigned short port;
struct hostent *host = NULL;
char getparameter[2][30];

printf("请输入服务器端口号:");
gets(getparameter[PORT]);
printf("请输入服务器IP地址:");
gets(getparameter[IP]);

/*加载Winsock DLL*/
if (WSAStartup(MAKEWORD(2 , 2) , &wsd) != 0) {
    printf("Winsock    初始化失败!\n");
    return 1;
}

/*创建Socket*/
sClient = socket(AF_INET , SOCK_STREAM , IPPROTO_TCP);
if (sClient == INVALID_SOCKET) {
    printf("socket() 失败: %d\n" , WSAGetLastError());
    return 1;
}

/*指定服务器地址*/
server.sin_family = AF_INET;
port = atoi(getparameter[PORT]);
server.sin_port = htons(port);
server.sin_addr.s_addr = inet_addr(getparameter[IP]);
if (server.sin_addr.s_addr == INADDR_NONE) {
    host = gethostbyname(getparameter[IP]);    //输入的地址可能是域名等
    if (host == NULL) {
        printf("无法解析服务端地址: %s\n" , getparameter[IP]);
        return 1;
    }
    CopyMemory(&server.sin_addr ,
                host->h_addr_list[0] ,
                host->h_length);
}
/*与服务器建立连接*/
if (connect(sClient , (struct sockaddr*)&server ,
                sizeof(server)) == SOCKET_ERROR) {
    printf("connect() 失败: %d\n" , WSAGetLastError());
    return 1;
}
//用完了,关闭socket句柄(文件描述符)
closesocket(sClient);
WSACleanup();    //清理
return 0;

}
就这个手机编译器不能运行,电脑Dev-C++也不行。

  • 写回答

3条回答 默认 最新

  • 关注

    visual stduio 2008能运行啊,devc++应该也可以啊,你用我下面贴的代码试试。

    img

    代码:

    #include <winsock2.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    #pragma comment(lib , "ws2_32.lib")
    
    #define BUFSIZE 4096 /*缓冲区大小*/
    #define PORT 0
    #define IP 1
    
    int main( )
    {
        WSADATA wsd;
        SOCKET sClient;
        char Buffer[BUFSIZE];
        int ret;
        struct sockaddr_in server;
        unsigned short port;
        struct hostent *host = NULL;
        char getparameter[2][30];
    
        printf("请输入服务器端口号:");
        gets(getparameter[PORT]);
        printf("请输入服务器IP地址:");
        gets(getparameter[IP]);
        /*加载Winsock DLL*/
        if (WSAStartup(MAKEWORD(2 , 2) , &wsd) != 0) {
            printf("Winsock    初始化失败!\n");
            return 1;
        }
        /*创建Socket*/
        sClient = socket(AF_INET , SOCK_STREAM , IPPROTO_TCP);
        if (sClient == INVALID_SOCKET) {
            printf("socket() 失败: %d\n" , WSAGetLastError());
            return 1;
        }
        /*指定服务器地址*/
        server.sin_family = AF_INET;
        port = atoi(getparameter[PORT]);
        server.sin_port = htons(port);
        server.sin_addr.s_addr = inet_addr(getparameter[IP]);
        if (server.sin_addr.s_addr == INADDR_NONE) {
            host = gethostbyname(getparameter[IP]);    //输入的地址可能是域名等
            if (host == NULL) {
                printf("无法解析服务端地址: %s\n" , getparameter[IP]);
                return 1;
            }
            CopyMemory(&server.sin_addr ,
                host->h_addr_list[0] ,
                host->h_length);
        }
        /*与服务器建立连接*/
        if (connect(sClient , (struct sockaddr*)&server ,
            sizeof(server)) == SOCKET_ERROR) {
                printf("connect() 失败: %d\n" , WSAGetLastError());
                return 1;
        }
        //用完了,关闭socket句柄(文件描述符)
        closesocket(sClient);
        WSACleanup();    //清理
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月12日
  • 已采纳回答 6月4日
  • 创建了问题 12月5日

悬赏问题

  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据
  • ¥15 关于树的路径求解问题
  • ¥15 yolo在训练时候出现File "D:\yolo\yolov5-7.0\train.py"line 638,in <module>
  • ¥30 戴尔inspiron独显直连
  • ¥15 进行一项代码设计遇到问题
  • ¥15 Mutisim中关于74LS192N计数器芯片设计(计数器)
  • ¥50 fastadmin后台无法删除文件
  • ¥15 oracle查询Socket read timed out错误