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

Linux程序设计中Socket本地通信程序无法运行

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

    本文导语:  问题描述如题所述。 client.c #include  #include  #include  #include  #include  int main() {     int sockfd;     int len;     struct sockaddr_in address;     int result;     char ch = 'A'; //Create a socket for the client     sock...

问题描述如题所述。
client.c

#include 
#include 
#include 
#include 
#include 

int main()
{
    int sockfd;
    int len;
    struct sockaddr_in address;
    int result;
    char ch = 'A';

//Create a socket for the client
    sockfd = socket(AF_INET,SOCK_STREAM,0);
    //Name the socket,as agreed with the server
    address.sin_family = AF_INET;
    address.sin_addr.s_addr = inet_addr("127.0.0.1");
    address.sin_port = 9734;
    len = sizeof(address);

    result = connect(sockfd,(struct sockaddr *)&address,len);
    if(result == -1)
    {
        perror("oops:client");
        exit(1);
    }

    write(sockfd, &ch, 1);
    read(sockfd, &ch, 1);
    printf("char from server = %cn", ch);
    close(sockfd);
    return 0;
}


server.c

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

int main()
{

    int server_sockfd,client_sockfd;
    socklen_t server_len,client_len;
    struct sockaddr_in server_address;
    struct sockaddr_in client_address;

    server_sockfd = socket(AF_INET, SOCK_STREAM, 0);
    server_address.sin_family = AF_INET;
    server_address.sin_addr.s_addr = inet_addr("127.0.0.1");
    server_address.sin_port = 9734;
    server_len = sizeof(server_address);
    bind(server_sockfd, (struct sockaddr *)&server_address, server_len);

    listen(server_sockfd,5);
    while(1)
    {
        char ch;
        printf("server waitingn");

        client_len = sizeof(client_address);
        client_sockfd = accept(server_sockfd,(struct sockaddr *)&client_address,&client_len);
        read(client_sockfd,&ch,1);
        ch++;
write(client_sockfd,&ch,1);

        close(client_sockfd);
    }
    return 0;
}


运行程序:$ ./ser & ./cli
输入命令后显示:
[1] 26538
server waiting

然后到这里程序就不动了。具体是到accept函数就停止了。

也上网查了一些资料但还是不知道怎么回事,还请大家多多指教。

|
试试address.sin_port = htons(9734)

客户端、服务器都改一下

    
 
 

您可能感兴趣的文章:

  • linux下通过crond实现自动执行程序
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • linux上的程序怎样远程启动另一个linux系统上的某个程序
  • 如何使用linux下gdb来调试python程序
  • 在linux下面怎么安程序啊?我刚裝了一个 linux,下了一个迅雷安装程序,可是不知道怎么安装啊?真心请教。
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户
  • Linux程序员在公司里做什么程序?(Linux程序员请进)
  • 我的linux程序 如何 在pc机器上运行。现在我用arm-linux-g++ 编译后的程序在我的嵌入设备上运行。
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户 100分相赠
  • linux初学者一简单问题!在线送分!linux设备驱动程序一书的第一个程序.
  • 最进想学习LINUX程序设计,想了解一下在LINUX下的C++程序开发工具有哪些?有快速做界面的那种吗?
  • 我写了个linux下的网络程序,程序在多个电脑间通信,但是我没有多个电脑,怎么调试这样的程序啊?
  • linux下,一个程序如何向另一个程序发送消息,另一个程序如何接收
  • 请问载linux下如何调试汇编程序,有没有像debug的程序。
  • linux的程序员是不是比windows程序员的薪水高啊?
  • 菜鸟求助:Linux 应用程序后台启动后关闭窗口程序退出
  • 请教:如何在linux服务器上实现一个程序,该程序可启动远程linux客户端上的一个脚本(sh后缀)的执行
  • 求gnu/linux编程指南,linux程序设计二本书
  • 对于一个程序员来说,学习linux程序设计和unix编程到底有什么好处
  • 初学linux程序设计,有个程序找不到思路,跪求大神指点!
  • 初学linux,请问《Unix环境高级编程》和《Linux程序设计》哪本书比较适合先看?
  • 求:Linux 程序设计(原书第2版) ( Beginning Linux Programming,2nd Edition ) 电子版
  • 请推荐几本经典的linux下程序设计的书籍~
  • trap '' INT..为什么ctrl+c,不会终止脚本程序呢。这是Linux程序设计里面的例子。
  • 一个老程序员的观点:Linux程序/内核设计是一门技术,Windows下的可扩展、可复用架构设计是一门艺术!
  • 初学linux程序设计的问题
  • 《linux程序设计》中的一个问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 嵌入式linux开发:一段代码在windows平台用VC编译运行正常,在linux平台用gcc编译运行正常,但是用arm-linux-gcc编译在嵌入式板子上运行就不正常.
  • 弱弱地问,能否让WINDOWS下自动运行的多媒体光盘在LINUX下也自动运行播放(LINUX下可一看到光盘上文件)
  • 程序在windows下用visual运行正常,如何才能在linux下运行??
  • 怎样让linux启动后不运行桌面而是直接运行某个应用程序呢?
  • linux编写一个脚本判断程序是否在运行,如果没运行就重启这个软件。
  • 请问如何让Linux 0.11运行?它运行后是怎样的?谢谢!!
  • 新手提问:grep在linux中运行跟在php运行返回结果不一样
  • Linux开关机时想让脚本运行却运行不了?
  • 谁有linux?帮我用在linux运行两个文件好吗?
  • linux环境下,java程序手工运行不乱码,crontab自动运行就乱码
  • vmware怎么优化?在vmware上装linux运行起来是不是特别慢?我在256内存的p4上安装,运行起来很慢!
  • LINUX 下使用QT开发的程序如何才能让它在没有安装QT的Linux系统下运行?
  • 请问在高版本linux编译链接的程序如何在低版本Linux上运行
  • linux运行级别
  • 我在linux下安装了linux版的realone,但却没法找到如何运行。
  • 在Linux Shell scripts下变量如何取linux的命令运行值
  • 请问如何在linux下运行windows游戏?
  • 在linux中什么叫运行级别
  • 初学者提问:可以在Linux上运行exe程序吗?
  • 我现在在编写一个在LINUX下运行的命令解释器,对于后台运行的命令方法有些不懂,请高手指点一下
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


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

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

    浙ICP备11055608号-3