python socket 交互通信

事例1:

服务端:

#!/usr/bin/env python
# encoding: utf-8

"""
@version: ??
@author: phpergao
@license: Apache Licence 
@file: socket_server.py
@time: 2016-05-22 19:22
"""

import socket
ip_port=("127.0.0.1",9999)
sk=socket.socket()
sk.bind(ip_port)
sk.listen(5)
while True:
    print("server waiting")
    conn,addr=sk.accept()
    client_data=conn.recv(1024)
    print(str(client_data,encoding="utf-8"))
    conn.sendall(bytes("不要回答,我不想被占领",encoding="utf-8"))
    conn.close()

客户端:

import socket
ip_port=("127.0.0.1",9999)
sk=socket.socket()
sk.connect(ip_port)

sk.sendall(bytes("请求占领地球",encoding="utf-8"))
sk.sendall(bytes("\n我要开始侵略占领地球了",encoding="utf-8"))
server_reply=sk.recv(1024)
print(str(server_reply,encoding="utf-8"))
sk.close()

事例2:

服务端:

import socket
ip_port=("127.0.0.1",9999)
sk=socket.socket()
sk.bind(ip_port)
sk.listen(5)
while True:

    print("server waiting")
    conn,addr=sk.accept()
    client_data=conn.recv(1024)
    print(str(client_data,encoding="utf-8"))
    conn.sendall(bytes("不要回答,我不想被占领",encoding="utf-8"))
    while True:
        try:
            client_data=conn.recv(1024)
            print(str(client_data,encoding="utf-8"))
        except Exception:
            print("client close.")
            break
        conn.send(client_data)
    conn.close()

客户端:

import socket
ip_port=("127.0.0.1",9999)
sk=socket.socket()
sk.connect(ip_port)

sk.sendall(bytes("请求占领地球",encoding="utf-8"))
sk.sendall(bytes("\n我要开始侵略占领地球了",encoding="utf-8"))
server_reply=sk.recv(1024)
print(str(server_reply,encoding="utf-8"))
while True:
    enter=input("enter:")
    sk.send(bytes(enter,encoding="utf-8"))
sk.close()

在Linux服务端:

import socket
ip_port=("127.0.0.1",9999)
sk=socket.socket()
sk.bind(ip_port)
sk.listen(5)
while True:

    print("server waiting")
    conn,addr=sk.accept()
    client_data=conn.recv(1024)
    print(str(client_data,encoding="utf-8"))
    conn.sendall(bytes("不要回答,我不想被占领",encoding="utf-8"))
    while True:

        client_data=conn.recv(1024)
        print(str(client_data,encoding="utf-8"))

        if not client_data:
            break
        conn.send(client_data)
    conn.close()
时间: 2024-10-11 21:27:13

python socket 交互通信的相关文章

【Python之旅】第五篇(一):Python Socket通信原理

只要和网络服务涉及的,就离不开Socket以及Socket编程,下面就说说Python Socket通信的基本原理. 1.Socket socket也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字"向网络发出请求或者应答网络请求.可以列举中国移动或者是中国电信等的电话客服,当然,也可以看下面的图片来作形象的说明. socket起源于Unix,而Unix/Linux基本哲学之一就是:一切皆文件,即都可以用"打开open-

第十一节:python mysql交互、socket、多线程

python个人笔记,纯属方便查询. ------------------------------------python mysql交互---------------------------------------  #查询: import MySQLdb try:         conn=MySQLdb.connect(host='10.86.10.21',user='root',passwd='mysql',db='python',port=3306)         cur=conn.

python - socket通信笔记

参考: 通过编写聊天程序来熟悉python中多线程和socket的用法:https://www.cnblogs.com/mingjiatang/p/4905395.html python socket通信:https://yq.aliyun.com/articles/40745?spm=5176.100239.blogcont40768.17.FIFTZv 1.socket使用方法 a.在python中使用socket时要iamport socket b.在使用socket中又服务器端和客户端之

一小时学会用Python Socket 开发可并发的FTP服务器!!

socket是什么 什么是socket所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字"向网络发出请求或者应答网络请求.说白了就是一种通信机制.它类似于银行,电信啊这些部分的电话客服部门.你打电话的时候,那边会分配置一个人回答你的问题,客服部门就相当于socket的服务器端了,你这边呢就相当于客户端了,在和你通话结束前,如果有人在想找和你通话的那个说话,是不可能的,因为你在和他通信,当然客服部门的电话交换机也

Python Socket 编程——聊天室演示样例程序

上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和client的代码了解主要的 Python Socket 编程模型.本文再通过一个样例来加强一下对 Socket 编程的理解. 聊天室程序需求 我们要实现的是简单的聊天室的样例,就是同意多个人同一时候一起聊天.每一个人发送的消息全部人都能接收到,类似于 QQ 群的功能,而不是点对点的 QQ 好友之间的聊天.例如以下图: 图来自:http://www.ibm.com/developerworks/linux/tu

Python Socket,How to Create Socket Server? - 网络编程实例

文章出自:Python socket – network programming tutorial by Silver Moon 原创译文,如有版权问题请联系删除. Network programing in Python: Part2: Programing sockets servers. 在所有的通信实例中,都分为Client 和Server. 其中:Client是请求的发起点,Server是使用Socket接收传入的值并且提供返回数据. Server的职能如下: 1>.创建/打开一个so

python socket编程入门(编写server实例)+send 与sendall的区别与使用方法

python 编写server的步骤: 1. 第一步是创建socket对象.调用socket构造函数.如: socket = socket.socket( family, type ) family参数代表地址家族,可为AF_INET或AF_UNIX.AF_INET家族包括Internet地址,AF_UNIX家族用于同一台机器上的进程间通信. type参数代表套接字类型,可为SOCK_STREAM(流套接字)和SOCK_DGRAM(数据报套接字). 2. 第二步是将socket绑定到指定地址.这

python/socket编程之粘包

python/socket编程之粘包 粘包: 只有TCP有尿包现象,UDP永远不会粘包. 首先需要掌握一个socket收发消息的原理 发送端可以是1k,1k的发送数据而接受端的应用程序可以2k,2k的提取数据,当然也有可能是3k或者多k提取数据,也就是说,应用程序是不可见的,因此TCP协议是面来那个流的协议,这也是容易出现粘包的原因而UDP是面向笑死的协议,每个UDP段都是一条消息,应用程序必须以消息为单位提取数据,不能一次提取任一字节的数据,这一点和TCP是很同的.怎样定义消息呢?认为对方一次

Python Socket 网络编程

Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页.QQ 聊天.收发 email 等等.要解决网络上两台主机之间的进程通信问题,首先要唯一标识该进程,在 TCP/IP 网络协议中,就是通过 (IP地址,协议,端口号) 三元组来标识进程的,解决了进程标识问题,就有了通信的基础了. 本文主要介绍使用 Python 进行 TCP Socket 网络编程,假设你已