c语言与python通信_C和Python – 与套接字通信

我正在尝试使用UNIX域套接字在C程序和

Python脚本之间进行通信. Python脚本通过UNIX域套接字将数据发送到C程序.

这是我的C程序的相关代码:

#include

#include

#include

#include

#include

#include

#define UNIX_PATH_MAX 100

int main(void)

{

struct sockaddr_un address;

int socket_fd,connection_fd;

socklen_t address_length;

pid_t child;

socket_fd = socket(AF_UNIX,SOCK_STREAM,0);

if (socket_fd < 0){

printf("socket() failed\n");

return 1;

}

unlink("/tmp/demo_socket");

memset(&address,sizeof(struct sockaddr_un));

address.sun_family = AF_UNIX;

snprintf(address.sun_path,UNIX_PATH_MAX,"/tmp/demo_socket");

if (bind(socket_fd,(struct sockaddr *) &address,sizeof(struct sockaddr_un)) != 0) {

printf("bind() failed\n");

return 1;

}

if(listen(socket_fd,5) != 0) {

printf("listen() failed\n");

return 1;

}

//----------------WHILE LOOP----------------------->

while((connection_fd = accept(socket_fd,&address_length)) > -1)

{

.

.

.(doesn't get any further than this)

这是我用来向套接字发送消息的python脚本:

import socket

s = socket.socket(socket.AF_UNIX,socket.SOCK_STREAM)

s.connect("/tmp/demo_socket")

print "Sending..."

s.send("Hello world")

x = s.recv(1024)

print x

s.close()

python脚本失败,错误“Broken Pipe”. C程序永远不会进入while循环,因为accept()函数失败并返回’-1′.

为什么accept()失败了?我能做些什么才能让它成功?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501010.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

口琴膜片什么作用_2020年半音阶口琴选购攻略,让小白告别选择困难

为什么我会喜欢上口琴&#xff0c;其实是因为小时候看到《数码宝贝》里的阿和吹奏口琴&#xff0c;当时觉得很酷。不过家里条件很差&#xff0c;想要一个但是没提&#xff0c;后来工作买了一把铃木的。不过选口琴是一个很麻烦的事情&#xff0c;品类太多。在了解的过程中&#…

JAVA进阶教学之(集合)

目录 1、集合概述 2、集合存储的数据类型 3、不同的集合&#xff0c;底层都会对应不同的数据结构 4、集合继承结构图&#xff08;部分接口和类&#xff09; 5、Collection接口中常用的方法 6、Collection 集合迭代&#xff08;遍历&#xff09; 7、Collection的contains…

python中有数组吗_python有数组吗

广告关闭 腾讯云11.11云上盛惠 &#xff0c;精选热门产品助力上云&#xff0c;云服务器首年88元起&#xff0c;买的越多返的越多&#xff0c;最高返5000元&#xff01;感悟&#xff1a; 1.python列表操作里不允许变量类型的指针2.case1类似于冒泡排序操作&#xff0c;这个是满足…

flutter天气_牛笔!自己用Flutter撸一个天气APP

这是一款简约风格的 flutter 天气项目&#xff0c;提供实时、多日、24 小时、台风路径以及生活指数等服务&#xff0c;支持定位、删除、搜索等操作。下图为主页效果&#xff1a;开始本身作为天气 APP&#xff0c;自定义绘制自然少不了&#xff0c;首页多样的背景效果&#xff0…

电脑远程凭证不工作:解决

电脑 远程桌面连接你的凭据不工作解决方法 方法/步骤 第一步我们首先需要知道远程桌面连接你的凭据不工作原因是&#xff0c;远程的电脑拒绝了访问&#xff0c;需要设置在远程的电脑上设置安全选项&#xff0c;按winR键&#xff0c;打开运行&#xff0c;输入“gpedit.msc”&a…

python汉诺塔递归算法_Python文摘:汉诺塔问题与递归算法

历史传说&#xff1a; 在世界中心贝拿勒斯&#xff08;在印度北部&#xff09;的圣庙里&#xff0c;一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候&#xff0c;在其中一根针上从下到上地穿好了由大到小的64片金片&#xff0c;这就是所谓的汉诺塔。不论白天黑夜…

python print格式化输出类型_第一讲:Python print() 格式化输出

由于书本上少了这个知识&#xff0c;所以总结如下&#xff0c;各同学看完后完成对应的试题&#xff1a;格式符为真实值预留位置&#xff0c;并控制显示的格式。格式符可以包含有一个类型码&#xff0c;用以控制显示的类型&#xff0c;如下:%s 字符串 (采用str()的显示)%r …

转-递归教学

作者&#xff1a;帅地 链接&#xff1a;https://www.zhihu.com/question/31412436/answer/683820765 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 递归专题连续刷题半年&#xff0c;从小白到学会了套路&#xff…

android游戏编程之从零开始_纯C语言程序员写的编程新手入门基础小游戏之最炫酷推箱子...

很多编程爱好者都编写过推箱子游戏编程吧&#xff0c;最近有好些朋友看见我以前的推箱子程序后&#xff0c;问我是怎么做的。我一直想把这个程序的整个过程写一份详细的东西&#xff0c;与各位编程爱好者分享&#xff0c;一直没空。正好现在放假了&#xff0c;而且离回家还有几…

数据库新增幂等操作_使用数据库唯一键实现事务幂等性

幂等性概念在分布式系统中&#xff0c;幂等性是一致性方面的一个重要概念。幂等(idempotent、idempotence)是一个数学与计算机学概念&#xff0c;常见于抽象代数中。在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。所谓“影响相同”&#xff…

python re模块compile_Python re模块的match方法

pattern re.compile("\d") 将正则表达式编译成一个Pattern规则对象 pattern.match() 从开始位置开始往后查找&#xff0c;返回第一个符合规则的对象 pattern.search() 从任何位置开始往后查找&#xff0c;返回第一个符合规则的对象 pattern.findall() 所有的全部匹配…

考研数学(180°为什么等于π)

之所以要定义弧度制,是因为它的单位相比角度制有很大的优越性. 弧度的大小是两个长度之比,长度的单位是统一的,所以相比以后,可以认为弧度的单位为1,即以实数单位为单位. 弧度可以看做导出单位. 而角度制则不然,角度制单位是1/360周角,然而,1/360是怎么来的?为什么是周角除360…

c++ h cpp文件如何关联_C++核心准则SF.5: .cpp文件必须包含定义它接口的.h文件

SF.5: A .cpp file must include the .h file(s) that defines its interfaceSF.5: .cpp文件必须包含定义它接口的.h文件Reason(原因)This enables the compiler to do an early consistency check.这样可以让编译器尽早进行一致性检查。Example, bad(反面示例)// foo.h:void f…

常用的python脚本_五个python常用运维脚本面试题实例

一、用Python写一个列举当前目录以及所有子目录下的文件&#xff0c;并打印出绝对路径 #!/usr/bin/env python import os for root,dirs,files in os.walk(/tmp): for name in files: print (os.path.join(root,name)) os.walk() 原型为&#xff1a;os.walk(top, topdownTrue, …

JAVA进阶教学之(IO流)

目录 1、什么是IO流 2、流的分类 3、流的四大家族首领 4、java.io.*包下需要掌握的16个流 5、FileInputStream的实用方法 6、FileOutputStream的方法 7、文件复制/拷贝 8、FileReader的使用 9、FileWriter的使用 10、复制普通文本文件 11、BufferedReader带有缓冲区…

sonar 代理_Sonar

关于Sonar费用&#xff1a;免费;更新频率&#xff1a;持续更新;搜索来源&#xff1a;亚马逊;关键词总数&#xff1a;美国站约1亿&#xff0c;全球约1.8亿;关键词反查&#xff1a;支持;PPC关键词查询&#xff1a;支持;其他功能&#xff1a;关键词翻译。功能1、亚马逊PPC管理&…

devtools安装_R语言如何批量安装软件包

1. 为什么要批量安装R语言包当你在新的环境下&#xff0c; 安装R语言时&#xff0c;你需要安装很多包&#xff0c;比如tidyverse&#xff0c;比如data.table&#xff0c;这里你可以写一个函数&#xff0c;将所有需要的包写进去&#xff0c;然后进行批量安装2. 程序如下&#xf…

JAVA进阶教学之(序列化和反序列化)

目录 1、序列化Serialize和反序列化的概念 2、序列化和反序列化的代码演示&#xff1a; 3、序列化多个对象&#xff08;序列化集合&#xff09; 4、transient关键字将部分属性不参与序列化 1、序列化Serialize和反序列化的概念 在内存和硬盘的数据交互过程中&#xff0c;将…

java如何实现e的次方_Java开发如何更改MySQL数据库datadir目录之MySQL数据库索引实现...

引言MySQL是一个关系型数据库管理系统&#xff0c;由瑞典MySQL AB 公司开发&#xff0c;目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一&#xff0c;在 WEB 应用方面&#xff0c;MySQL是最好的 RDBMS (Relational Database Management System&#xff0c…

pythonjieba分词_$好玩的分词——python jieba分词模块的基本用法

jieba&#xff08;结巴&#xff09;是一个强大的分词库&#xff0c;完美支持中文分词&#xff0c;本文对其基本用法做一个简要总结。 安装jieba pip install jieba 简单用法 结巴分词分为三种模式&#xff1a;精确模式&#xff08;默认&#xff09;、全模式和搜索引擎模式&…