UNIX下的通信
来源:互联网 发布:淘宝联盟怎么招代理 编辑:程序博客网 时间:2024/06/06 04:54
今天继续往后读了一点,进度非常慢,可能是理解不深刻。先记录下今天学到的一些东西
UNIX套接字
查阅了一下,unix套接字用于计算机内部的交流。其地址是文件路径
且需要在unix/linux下
我是在unbunta下实现的。代码依旧来自《python标准库》
import socketimport sysimport osserver_adress = './uds_socket'try: os.unlink(server_adress)except OSError: if os.path.exists(server_adress): raisesock = socket.socket(socket.AF_UNIX,socket.SOCK_STREAM)print >>sys.stderr,'starting up on %s' %server_adress sock.bind(server_adress)sock.listen(1)while True: print >>sys.stderr,'waiting for a connection' connection ,client_address = sock.accept() try: print >>sys.stderr,'connection from',client_address while True: data = connection.recv(16) print >>sys.stderr,'recived "%s"' %data if data: print >>sys.stderr,'sending data back to the client ' connection.sendall(data) else: print >>sys.stderr,'no data from %s'%client_address break finally: connection.close()
下面是client端的
import socket
import sys
sock = socket.socket(socket.AF_UNIX,socket.SOCK_STREAM)server_address = './uds_socket'print >>sys.stderr,'connecting to %s'%server_addresstry: sock.connect(server_address)except socket.error,msg: print >>sys.stderr,msg sys.exit(1)try: message = 'This is the message.It will be repeated.' print >>sys.stderr,'sending "%s"' %message sock.sendall(message) amount_received = 0 amount_expected = len(message) while amount_received < amount_expected: data = sock.recv(16) amount_received+=len(data) print >>sys.stderr,'received "%s"'%datafinally: sock.close()
与之前的程序差异不大,很明显发现遵循以下几步
服务器:
1.先选择所需服务的套接字,例如
sock = socket(socket.AF_INET,socket.SOCK_STREAM)
这个是tcp
2绑定
3监听
4创建连接
5关闭
客户端:
1如上第一步
2连接
以上是最近总结的一些东西
0 0
- UNIX下的通信
- Unix系统下的基于TCP通信的聊天室
- unix like下的进程间通信IPC学习小结
- unix socket通信的方式
- UNIX下TCP/IP通信测试程序
- linux下unix socket通信--基于udp
- unix进程通信方式总结(下)
- Unix下管道实现进程间通信
- unix进程间通信方式(下)-unix域套接字
- 共享内存 (shared memory)是 Unix下的多进程之间的通信方法
- UNIX系统下的基于TCP协议的网络通信程序
- unix/linux下的共享内存、信号量、队列信息管理(进程间通信)
- 多进程,多线程在 Window 和 Unix 下的通信,同步与互斥
- UNIX下的常用命令
- unix下的shell
- 精通UNIX下的.....
- unix下的rootkit
- unix下的ACL
- View的工作原理(三)
- update中使用replace
- 当python超出默认递归次数RecursionError: maximum recursion depth exceeded in comparison
- 时间段内做最多的事
- Storm入门实例之单词计数
- UNIX下的通信
- [php] 让 session 存入 redis 或 memcached 的配置
- Git Tag作用
- ashx和aspx的区别
- mysql架构基础学习
- loadrunner使用教程之IP欺骗
- Centos7 vnc配置
- Presto Facebook 开源的大数据查询引擎
- wordpress建设博客或电商网站之一:安装与配置phpmyadmin