Math Dash
2022-03-02 15:41
采纳率: 75%
浏览 74
已结题

C语言网络编程,如何更改自己编的程序的本地ip?

我的ip地址只能在内部使用

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <winsock2.h>
main()
{
    WSADATA wsaData;
    int err=WSAStartup(MAKEWORD(2,2),&wsaData);
    SOCKET sock=socket(AF_INET,SOCK_STREAM,0);//*初始化
    struct sockaddr_in serv_addr2;
    serv_addr2.sin_family=2;//*IPv4地址
    serv_addr2.sin_addr.s_addr=inet_addr("192.168.2.2");//*ip
    serv_addr2.sin_port=htons(2305);//*端口号
    bind(sock,(struct sockaddr*)&serv_addr2,sizeof(serv_addr2));
    int f=listen(sock,200);//*监听
    int len=sizeof(struct sockaddr_in);
    SOCKADDR clntaddr;
    SOCKET data;
    data=accept(sock,&clntaddr,&len);//*接收请求
    char *data2;
    data2=(char*)malloc(sizeof(char)*1024*1024);
    unsigned long long int length=0;
    while(length<1024*1024)
    {
        data2[length]='a';
        length++;
    }
    data2[length]='\0';
    int j;
    send(data,data2,1024*1024,0);//*发送信息
    closesocket(sock);
    closesocket(data);
    free(data2);
    //*关闭套接字 
    WSACleanup();
    system("pause");
    return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <winsock2.h>
main()
{
    char ip[30];
    WSADATA wsaData;
    int err=WSAStartup(MAKEWORD(1,0),&wsaData);
    SOCKET sock=socket(AF_INET,SOCK_STREAM,0);//*初始化
    struct sockaddr_in serv_addr;
    serv_addr.sin_family=AF_INET;//*IPv4地址 
    serv_addr.sin_addr.s_addr=inet_addr("192.168.2.2");//*ip
    serv_addr.sin_port=htons(2305);//*端口号
    connect(sock,(SOCKADDR*)&serv_addr,sizeof(serv_addr));
    system("pause");
//   listen(sock,200);
    char *data;
    data=(char*)malloc(sizeof(char)*1024*1024);
    data[1024*1024]='\0';
    int j;
    recv(sock,data,1024*1024,0);
    printf("%s",data);
    free(data);
    closesocket(sock);//*关闭套接字 
    WSACleanup();
    system("pause");
    return 0;
}

应该怎么修改ip,才能在保证网络正常通信的同时又能将信息通过自己编的程序发送到互联网?

1条回答 默认 最新

相关推荐 更多相似问题