| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1779 人关注过本帖
标题:C语言socket 问题求高手帮忙
只看楼主 加入收藏
lixingying
Rank: 2
等 级:论坛游民
帖 子:45
专家分:27
注 册:2010-8-3
结帖率:40%
收藏
已结贴  问题点数:20 回复次数:23 
C语言socket 问题求高手帮忙
                           有以下关于客户端的代码::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

#include<Winsock2.h>
#include<stdio.h>
void main()
{

    //加载套接字库 用WSAStartup函数
    WORD wVersionRequested;//定义WORD类型获得套接字的版本号
    WSADATA wsaData;//定义WSADTA结构体变量
    int err;
   
    wVersionRequested = MAKEWORD( 1, 1 );
   
    err = WSAStartup( wVersionRequested, &wsaData );
    if ( err != 0 ) {
        
        return;
    }
   
    //判断低字节 和高自己是不是等于1
    if ( LOBYTE( wsaData.wVersion ) != 1||
        HIBYTE( wsaData.wVersion ) != 1 )
    {
        WSACleanup( );//如果高位字节不等于1和地位字节不等于1
        //就调用WSACleanup终止Winsock库的使用 然后调用return 返回
        return;
    }
   
    SOCKET sock1=socket(AF_INET,SOCK_DGRAM,0);//创建基于UDP连接的套接字
    SOCKADDR_IN sockadd;//定义地址结构体的变量
  
  //高手请看下面这一行
    sockadd.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");

    sockadd.sin_family=AF_INET;
    sockadd.sin_port=htons(14718);
    //printf("%s",sockadd.sin_addr.S_un.S_addr);
    char str1[100];
    char str2[100];
    char str3[200];
    int len=sizeof(SOCKADDR);

    while(1)
    {
        printf("请向你的好友问好 : ");
        gets(str2);
        fflush(stdin);
        sendto(sock1,str2,strlen(str2)+1,0,(SOCKADDR*)&sockadd,len);
        recvfrom(sock1,str1,100,0,(SOCKADDR*)&sockadd,&len);
        if('q'==str1[0])
        {
            sendto(sock1,"q",strlen("q")+1,0,(SOCKADDR*)&sockadd,len);
            printf("聊天结束\n");
            break;
        }
        printf("\n");
        sprintf(str3,"%s 说: %s ",inet_ntoa(sockadd.sin_addr),str1);
        fflush(stdout);
        printf("%s\n",str3);
        fflush(stdout);
    }        
    closesocket(sock1);
        
    WSACleanup();
}
高手请看这行:::  sockadd.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
//===========================================================================
为什么填127.0.0.1就能跟自己连接 如果 把127.0.0.1 换成了 别人的IP地址 把客户端放在对方 就不能连接了呢 sockadd.sin_addr.S_un.S_addr=inet_addr("这里面到底要填什么,才能和对方建立连接??");
sockadd.sin_addr.S_un.S_addr=inet_addr("如果对方的IP地址是192.168.105??");
能不能就能连接 ,我试了好多次 不能 这到底是为什么????
到底要填什么地址才能和 别人建立连接???求高手帮帮忙

                           感谢!!!!





[ 本帖最后由 lixingying 于 2011-10-12 16:02 编辑 ]
搜索更多相关主题的帖子: include C语言 版本号 结构体 
2011-10-12 15:54
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:2 
127.0.0.1是你机器的内置回环地址 剩下的我也不知道了 我网络也没学多少

                                         
===========深入<----------------->浅出============
2011-10-12 16:06
lixingying
Rank: 2
等 级:论坛游民
帖 子:45
专家分:27
注 册:2010-8-3
收藏
得分:0 
00000

[ 本帖最后由 lixingying 于 2011-10-12 16:25 编辑 ]
2011-10-12 16:24
lixingying
Rank: 2
等 级:论坛游民
帖 子:45
专家分:27
注 册:2010-8-3
收藏
得分:0 
这我知道 但是 到底要填什么才能和对方连接 是不是对方的IP 如果对方的IP是192.168.*.*呢 填这个就行吗
2011-10-12 16:25
silent_world
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:258
专家分:1138
注 册:2011-9-24
收藏
得分:2 
单独看客户端的代码是没有问题。
如果你使用的是内部IP,192.168.*.*,应该不会受到影响;当然,要保证两台机器的连通。
当你的客户端放在其他电脑上时,IP要保证是服务端的IP就行了,端口也要一致。

如果能看看你实际的服务器端和客户端的代码,或许可以提出点个人看法。
2011-10-12 16:43
smallmoon521
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:517
专家分:1373
注 册:2008-4-21
收藏
得分:2 
代码没细看,你确定两台机器是可以连通的吗?是不是在一个网段中。可以ping一下试试

为游戏狂~~!!    大家努力编哈!
2011-10-12 17:40
lixingying
Rank: 2
等 级:论坛游民
帖 子:45
专家分:27
注 册:2010-8-3
收藏
得分:0 
在本机上 能连接 但是 地址是127.0.0.1 但是把客户端放在别的电脑上 就不能连接了
就算是 把127.0.0.1 换成了对方的IP 比如:192.168.*.* 这类的 就是连不上
2011-10-12 20:51
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:2 
回复 7楼 lixingying
先确保能ping通对方Ip

总有那身价贱的人给作业贴回复完整的代码
2011-10-12 22:38
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:2 
你可以ipconfig /all 查看一下你要连接的机器的IP地址才能够连接

愿用余生致力编程
2011-10-12 22:45
husiwen
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:227
专家分:1125
注 册:2010-5-23
收藏
得分:2 
是要对方的机子改上服务器的IP,你电脑的IP。。
2011-10-12 23:05
快速回复:C语言socket 问题求高手帮忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.079390 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved