当前位置:  技术问答>linux和unix

socket通信问题

    来源: 互联网  发布时间:2017-02-22

    本文导语:  本帖最后由 complety 于 2012-05-14 19:54:30 编辑 在虚拟机下的fedora里面写了个server和client程序。 测试正常。现在想测试下怎么让网络上的client找到server。 然后向server发送信息。防火墙都关闭了。 虚拟机联网方式是nat。服...

本帖最后由 complety 于 2012-05-14 19:54:30 编辑
在虚拟机下的fedora里面写了个server和client程序。
测试正常。现在想测试下怎么让网络上的client找到server。
然后向server发送信息。防火墙都关闭了。
虚拟机联网方式是nat。服务都开了。虚拟机里面的可以ping通
各个网站。现在就在怎么让client连接服务器了。求教育啊
server.c

#include 
#include 
#include 
#include 
#include 
#include 

#define MAX 100

void deal(char *src)
{
if (src == NULL)
return ;

for (; *src != ''; src++){
if (*src >= 'A' && *src  1){
str = argv[1];
}

bzero(&sin, sizeof(sin));
sin.sin_family = AF_INET;

inet_pton(AF_INET, "192.168.1.1", &sin.sin_addr);
        //问题就在这里。当我把这个ip改为自己的网络ip,然后把客户端
         //放到网络上的另一台主机上。让它来连接服务器。但是没反应
         //不知道为啥
        //这里的ip应该为服务器的网络ip。但没写上去。就写了个私有ip
sin.sin_port = htons(port);//和服务器同样的端口号

sockfd = socket(AF_INET, SOCK_STREAM, 0);

connect(sockfd, (struct sockaddr *)&sin, sizeof(sin));
//主动连接服务器
write(sockfd, str, strlen(str) + 1);
//该串不包括''
//读取服务器程序发回的串,由于是同一台机器,不存在延时
//真正的网络环境,要处理延时
read(sockfd, buf, MAX);

printf("recive form server : %sn", buf);

close(sockfd);

exit(0);
}

|
NAT只能帮助你的虚拟机LINUX上外网,局域网内其他机器和外网是无法主动连接你的,因为虚拟机根本不会把局域网机器发来的包NAT到你的虚拟机。

只有你的虚拟机主动连接外网的时候才会被NAT映射,所以楼主放弃吧。 我从没用过虚拟机软件设置NAT规则,里边有个PORT FORWARDING,也没看懂是不是修改NAT映射的地方,如果可以的话你就可以修改NAT规则,将流量以太网卡的XXX端口的包NAT到虚拟机网卡。

    
 
 

您可能感兴趣的文章:

  • php实现socket实现客户端和服务端数据通信源代码
  • 请问unix与window之间能否实现socket通信或者有什么方式可以通信?
  • SSL握手通信详解及linux下c/c++ SSL Socket代码举例
  • 两个 Socket 互相通信,其中一个如何判断另一个 Socket 是否已经意外断开了连接?
  • linux下用socket实现多进程间通信问题?
  • 怎样提高j2me中socket通信速度???
  • FIFO和Socket通信的并发效率问题
  • socket 通信!
  • 关于多网口socket通信的简单问题
  • socket通信
  • linux客户端程序能否和windows端的服务器程序进行socket通信?
  • Windows VMWare虚拟机socket通信问题
  • 征求Socket通信例程代码
  • Linux下的Socket通信如何断开连接的端口从而实现重复使用该端口
  • 初学内核编程,在内核态下怎么用socket通信?
  • linux与Windows socket通信,乱码
  • 基于socket的linux和Windows通信程序为什么运行特别慢?
  • C和Java的Socket通信问题
  • 关于socket通信问题
  • 关于socket通信,C的代码,有个问题请教高手!
  • socket通信 请求应答
  • linux socket问题。。怎样获得已帮定特定port的一个套接字socket
  • 关于socket概念的理解问题!
  • socket编程 中的bind问题
  • 你是否可以回答Socket的问题?数据先后问题
  • 多进程socket编程问题
  • Socket的问题
  • socket accept问题,大家指教。
  • socket客户端程序的问题
  • fgets用在SOCKET流上的问题
  • linux socket fd 写阻塞问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.net类socket的类成员方法: socket定义及介绍
  • re socket编程中 ACCEPT返回的socket与原socket(他参数中的)端口号一样吗?
  • java命名空间java.nio.channels类socketchannel的类成员方法: socket定义及介绍
  • libevent2需要从socket读一段数据写入一个socket中,同时发送给另一个socket
  • java命名空间java.nio.channels类serversocketchannel的类成员方法: socket定义及介绍
  • socket 通讯开发包 Simple Sockets
  • java命名空间java.nio.channels类datagramchannel的类成员方法: socket定义及介绍
  • 论坛 iis7站长之家
  • java命名空间java.net类socket的类成员方法: getsendbuffersize定义及介绍
  • vc做的的socket应用和unix下socket?
  • java命名空间java.net类socket的类成员方法: getreceivebuffersize定义及介绍
  • QSocketDevice ( int socket, Type type )中那个 int socket 是哪里来得?
  • java命名空间java.net类socket的类成员方法: gettrafficclass定义及介绍
  • socket编程 通过man socket, 没有找到socket函数的第一参数该填什么 怎样利用man手册
  • java命名空间java.net类socket的类成员方法: getport定义及介绍
  • 线程间可否通过管道传递SOCKET句柄?还有其他方式传递SOCKET么?
  • java命名空间java.net类socket的类成员方法: getlocalport定义及介绍
  • [FreeBSD] 大神,求解,control socket : can‘t to any socket
  • java命名空间java.net类socket的类成员方法: getinetaddress定义及介绍
  • 大家帮忙推荐一本linux socket编程的入门书,我刚接触socket,谢谢!!
  • java命名空间java.net类socket的类成员方法: isconnected定义及介绍
  • 我的ping程序怎么老是出现Socket operation on non-socket


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3