栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

socket编程

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

socket编程

1)网络中进程间如何通信

123网络中的进程间如何通信?我们首要解决的就是如何"唯一标识一个进程".在本地,可以采用pid标识进程,但是在网络中是不可以的. TCP/IP协议族给我们给出了答案:网络中的ip地址可以唯一标识网络中的主机,传输层的"协议+端口"可以唯一标识主机中的应用程序(进程).

2)什么是socket?

12345socket起源于UNIX,而UNIX一切皆文件.socket是一种特殊的文件,可以使用"open—write/read—close"操作. 当应用程序创建一个套接字时,操作系统就会返回一个小整数作为"描述符"标识这个套接字.应用程序以该描述符作为传递参数,通过调用函数来完成某种操作(例如通过网络传送数据或接收输入的数据)

3)TCP/IP、HTTP、socket

12345socket是对TCP/IP协议的封装和应用(程序员层面上),通过socket我们才可以使用tcp、ip协议TPC/IP协议是传输层协议,主要解决数据如何在网络中传输HTTP是应用层协议,主要解决如何包装数据;如果没有应用层,那么数据就不能被识别. CSDN上有个比较形象的描述:HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力

4)简单的socket服务端、客户端模型

12345678910111213141516171819202122232425262728293031323334353637383940414243444546***服务端***#!/usr/bin/env python#coding:utf-8import socket #创建套接字:用于监听(listen)和接收(accept)客户端的连接请求;AF_INET:IPV4  SOCK_STREAM:TCP套接字  SOCK_DGRAM:UDP套接字 sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)#绑定套接字sock.bind(('10.59.2.132',8080))#监听客户端连接数sock.listen(5while True:        #接收并返回(conn,address),conn为新的套接字对象,用来和客户端发送数据;address是客户端的地址.        conn,address = sock.accept()        conn.sendall('欢迎致电10086,请输入1想学习,0转人工服务.')        Flag = True        while Flag:                data = conn.recv(1024)                if data == 'exit':                        flag = false                elif data == "0":                        conn.sendall('通过可能会被录音...')                else:                        conn.sendall('请重新输入...')        conn.close()         ***客户端***#!/usr/bin/env python import socket ip_port = ('10.59.2.132',8080)sk = socket.socket()sk.connect(ip_port)#超时时间sk.settimeout(5while True:    data = sk.recv(1024)    print 'receive:',data    inp = raw_input('please input:')    sk.sendall(inp)    if inp == "exit":        breaksk.close()



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/223675.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号