一、socket处理单个连接

recv方法不是可以随便接收多大的数据都可以。官方建议是8KB,  即conn.recv(8192)

import socket

client = socket.socket()
'''
等价于client = socket.socket(family=socket.AF_INET, type=socket.SOCKET_STREAM)
'''
client.connect(('localhost', 6969))
client.send(b"hello, server") data = client.recv(1024)
print('收到服务器返回数据:', data) client.close() #######################################
#
# 收到服务器返回数据: b'HELLO, SERVER'
#
#######################################

客户端代码

import socket

server = socket.socket()
server.bind(("localhost", 6969))
server.listen() # 开始监听 one_person, one_address = server.accept()
data = one_person.recv(1024)
print('收到客户端数据:', data)
one_person.send(data.upper()) server.close() #######################################
#
# 收到客户端数据: b'hello, server'
#
#######################################

服务器端代码

区别:客户端和服务器连接一通电话,来回通话,如果客户端断开 Windows里服务器端也断开“远程主机关闭了一个现有连接”  Linux里服务器会进入死循环,不停接收到空字符

注意:不能send空字符。如果send空字符服务器端会卡住,因为此时服务器端还在等待接收数据。

二、socket处理单个连接,端口后可以用别的连接启动,客户端输入exit退出

import socket

client = socket.socket()
client.connect(('127.0.0.1', 6969))
while True:
data = input(">>").strip()
client.send(data.encode('utf-8'))
if data.lower() == 'exit':
break
print(client.recv(1024).decode("utf-8")) client.close()

客户端代码

import socket

server = socket.socket()
server.bind(('0.0.0.0', 6969))
server.listen() ##############################
while True:
first_client, first_address = server.accept()
while True:
data = first_client.recv(1024)
print(first_address, data)
if data.decode("utf-8").lower() == 'exit':
print("client is lost..")
break
first_client.send(data.upper())
##############################

服务器端代码

Socket实例的更多相关文章

  1. 网络编程基础【day09】:简单socket实例(二)

    本节内容 1.概述 2.socket实例 3.总结 一.概述 之前我们只是介绍了soket的概念和一些逻辑图表,下面我们来看看,socket的客户端和服务端到底是怎么用的? 二.socket实例 2. ...

  2. java tcp socket实例

    java tcp socket实例 2011-04-20 13:58 2364人阅读 评论(1) 收藏 举报 socketjavatcpthreadserverclass package com.ne ...

  3. socket实例2

    第二个实例创建一个java工程,基于tomcat服务器,程序运行时会启动客户端,实现了一个客户端向其他的客户端发送即时信息的功能 MainWindow.java package com.jikexue ...

  4. python socket实例练习

    Web Server是基于Socket编程,又称之为网络编程,socket是网络编程接口,socket可以建立网络连接,读数据,写数据.socket模块定义了一些常量参数,用来指定socket的的地址 ...

  5. C # socket 实例

    同步客户端存储示例 下面的示例程序创建连接到服务器的客户端.             客户端使用一个同步套接字生成,因此,客户端应用程序的执行挂起,直到服务器返回响应.  应用程序将字符串发送到服务器 ...

  6. py测试一个Socket实例

    本实例旨在了解py和socket的一些相关知识. 1.服务器端搭建py监听程序. 在客户端搭建python,linux默认自带了python2.7,先不管安装了. 接着编写socket程序,可以在本地 ...

  7. python socket实例

    1.客户端向服务端发送 #coding:utf-8 '''客户端''' import socket khd=socket.socket() #声明socket类型,同时生产socket连接对象 khd ...

  8. 简单的php socket 实例

    server: <?php set_time_limit(0); $ip = '127.0.0.1'; $port = 8888; // 1. 创建 if( ($sock = socket_cr ...

  9. socket实例1

    第一个例子创建了一个java工程,用来测试Socket的连接功能,通过浏览器可访问,地址为:127.0.0.1:端口号 MyServerSocket.java, package com.jikexue ...

  10. java Socket实例

    可以实现客户端与服务端双向通信,支持多客户端连接,客户端断开连接,服务端不会出现异常 服务端代码: package com.thinkgem.jeesite.modules.socketTest.de ...

随机推荐

  1. h5py快速入门指南

    h5py是Python语言用来操作HDF5的模块.下面的文章主要介绍h5py的快速入门指南,翻译自h5py的官方文档:http://docs.h5py.org/en/latest/quick.html ...

  2. 把mysql脚本或其他数据库脚本导入Powerdesigner

    打开powerdesigner,选择File --> Reverse Engineer --> Database…… Model name是模型名称,DBMS选MySQL 5.0 然后确定 ...

  3. C# 输出字符串到文本文件中

    写个博客记录下,方便以后使用: public class WriteHelper { public static void WriteFile(object data) { try { string ...

  4. Laravel日志

    大家在使用 Log::info() 会让日志全部记录默认在 storage/logs/laravel.log 文件里,文件大了查找起来就比较麻烦.那么我可不可以单独记录在一个日志文件里呢? 只需在你的 ...

  5. Thinkphp table doesn't exist

    系统采用Tp3.2的改造....集群为Mysql双工模式:平时M()主要是操作写,MS操作读...今天在查询 $res =MS("user u")->join("{ ...

  6. 【Spring】使用Spring发送邮件

    Spring Email抽象的核心是MailSender接口,MailSender的实现能够通过连接Email服务器实现邮件发送的功能,如下图: Spring自带一个MailSender的实现就是Ja ...

  7. 汇编语言--微机CPU的指令系统(五)(转移指令)

    (9)转移指令 转移指令是汇编语言程序员经常使用的一组指令.在高级语言中,时常有“尽量不要使用转移语句”的劝告,但如果在汇编语言的程序中也尽量不用转移语句,那么该程序要么无法编写,要么没有多少功能,所 ...

  8. laravel接值 get post

    laravel使用一种简单的方式来访问用户提交的信息. 你可以用统一的方式来访问用户提交的信息,而不用为用户提交信息的方式操心. 引用类:use Illuminate\Support\Facades\ ...

  9. vuejs 1.x - 实例:搜索过滤

    <!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...

  10. 【爬虫】在Xpath中使用正则

    ns = {"re": "http://exslt.org/regular-expressions"} print(html.xpath("//*[r ...