| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1779 人关注过本帖
标题:C语言socket 问题求高手帮忙
只看楼主 加入收藏
lixingying
Rank: 2
等 级:论坛游民
帖 子:45
专家分:27
注 册:2010-8-3
收藏
得分:0 
帮我看看 吧 好不好
2011-10-23 23:04
lixingying
Rank: 2
等 级:论坛游民
帖 子:45
专家分:27
注 册:2010-8-3
收藏
得分:0 
这是客户端的代码:
#include<stdio.h>
#include<Winsock2.h>
void main()
{
    WORD word;
    WSADATA wsadata;
    int err;
    word=MAKEWORD(2,2);
    err=WSAStartup(word,&wsadata);
    if(err!=0)
    {
        return;
    }
    if ( LOBYTE( wsadata.wVersion ) != 2||
        HIBYTE( wsadata.wVersion ) != 2 )
    {
        WSACleanup( );//如果高位字节不等于1和地位字节不等于1
        //就调用WSACleanup终止Winsock库的使用 然后调用return 返回
        return;
    }
    SOCKET soke=socket(AF_INET,SOCK_STREAM,0);
    SOCKADDR_IN addr;
    addr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
    addr.sin_family=AF_INET;
    addr.sin_port=htons(2005);
    connect(soke,(SOCKADDR*)&addr,sizeof(SOCKADDR));

    char str[100];
    char str1[100];
    recv(soke,str,100,0);
    printf("%s\n",str);
    printf("请输入字符:");
    gets(str1);
    send(soke,str1,strlen(str1)+1,0);
    closesocket(soke);
    WSACleanup();

}
2011-10-23 23:05
lixingying
Rank: 2
等 级:论坛游民
帖 子:45
专家分:27
注 册:2010-8-3
收藏
得分:0 
这是服务器的代码:
#include<stdio.h>
#include<Winsock2.h>
void main()
{
    WORD word;
    WSADATA wsadata;
    int err;
    word=MAKEWORD(2,2);
    err=WSAStartup(word,&wsadata);
    if(err!=0)
    {
        return;
    }
    if ( LOBYTE( wsadata.wVersion ) != 2||
        HIBYTE( wsadata.wVersion ) != 2 )
    {
        WSACleanup( );//如果高位字节不等于1和地位字节不等于1
        //就调用WSACleanup终止Winsock库的使用 然后调用return 返回
        return;
    }
    SOCKET sok=socket(AF_INET,SOCK_STREAM,0);
    SOCKADDR_IN sockadd;
    sockadd.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
    sockadd.sin_family=AF_INET;
    sockadd.sin_port=htons(2005);
    bind(sok,(SOCKADDR*)&sockadd,sizeof(SOCKADDR));
    listen(sok,5);//监听
    SOCKADDR_IN addr;
    int len=sizeof(SOCKADDR);
    while(1)
    {
       SOCKET soke=accept(sok,(SOCKADDR*)&addr,&len);
       char str[100];
       sprintf(str,"%s",inet_ntoa(addr.sin_addr));
       printf("%s\n",str);
       send(soke,str,strlen(str)+1,0);
       char ch[100];
       recv(soke,ch,100,0);
       printf("%s\n",ch);
       closesocket(soke);
    }


}
2011-10-23 23:06
lixingying
Rank: 2
等 级:论坛游民
帖 子:45
专家分:27
注 册:2010-8-3
收藏
得分:0 
在本机上能运行 但是 把客户端发给了 别的电脑 就没法连接了
addr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");

把这句改成了我的IP地址 也不行啊
addr.sin_addr.S_un.S_addr=inet_addr("192.168.1.106");
都是不行啊
希望 哪个高人给我指点下 感谢 感谢!!!!

2011-10-23 23:09
快速回复:C语言socket 问题求高手帮忙
数据加载中...
 
   



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

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