本节内容

1、概述

2、socket实例

3、总结

一、概述

  之前我们只是介绍了soket的概念和一些逻辑图表,下面我们来看看,socket的客户端和服务端到底是怎么用的?

二、socket实例

2.1 客户端

2.1.1 客户端代码逻辑图

2.1.2 客户端代码

1
2
3
4
5
6
7
8
9
10
import  socket   #导入socket模块
 
client = socket.socket()  #创建socket实例
client.connect(("localhost",6969))  #建立连接
send_data = "hello word!"   #发送的字符串
send_data = send_data.encode() #因为发送是bytes类型,所以这边先转码成bytes类型
client.send(send_data)  #发送数据,这边发送的是字节类型,也就是bytes类型
data = client.recv(1024)  #接收服务端的数据,这边设置接收1024字节  1kb=1024字节
print("server rece:",data.decode())
client.close()   #关闭与服务端的链接

2.2 服务端

2.2.1 服务端代码逻辑图 

2.2.2 服务端代码

1
2
3
4
5
6
7
8
9
10
11
12
import socket
 
sever = socket.socket()  #创建服务端实例
sever.bind(("localhost",6969))   #绑定客户端ip和端口
sever.listen()   #监听端口
print("我在电话了....")
conn,addr = sever.accept()   #接收客户端,并且返回连接标志位(conn)实例,和对方的ip地址(addr)
data = conn.recv(1024)   #接收客户端发过来的数据,接收的也是bytes类型的数据
print("我的电话来了")
print("client data:",data.decode())
conn.send(data.upper())  #发送数据至服务端,注意这边发送的也是字节类型,是bytes类型
sever.close()  #关闭服务端

三、总结

  1. python2中可客户端或者服务端均可发送字符串和字节,但是在python3中只能发字节,也就bytes类型的比特流
  2. 服务端接收客户端的链接时,会返回跟客户端的链接标志位的实例和对方ip地址+随机端口号
  3. 此例子只是TCP/IP协议的socket链接,后面继续学习UDP的链接

网络编程基础【day09】:简单socket实例(二)的更多相关文章

  1. Android 网络编程基础之简单聊天程序

    前一篇讲了Android的网络编程基础,今天写了一个简单的聊天程序分享一下 首先是服务端代码: package com.jiao.socketdemo; import java.io.Buffered ...

  2. 网络编程基础——System.Net.Socket 命名空间及相关类的使用

    System.Net.Socket 命名空间主要提供制作 Socket 网络应用程序的相关类.(Socket 类.TcpClient 类.TcpListener 类 和 UdpClient 类) 1. ...

  3. 网络编程基础之TCP学习(二)编程案例

    TCP网络编程流程如下: 实现功能:服务器端与客户端成功通讯后返回get! 服务器端程序 #include <netdb.h> #include <sys/socket.h> ...

  4. 第1章 网络编程基础(3)——基本Socket通信

    服务器常用模型

  5. [Python 网络编程] TCP、简单socket模拟ssh (一)

    OSI七层模型(Open System Interconnection,开放式系统互联) 应用层 网络进程访问应用层: 为应用程序进程(例如:电子邮件.文件传输和终端仿真)提供网络服务: 提供用户身份 ...

  6. python学习之路---day25( 网络编程基础和初识socket)

    基本网络知识和初识socket一:基本知识 网线:传输电信号 集线器:将所有连接到集线器的网络设备连通起来 交换机: 升级版的集线器 网卡:接受电信号 MAC地址:物理地址: 8C-88-4B-88- ...

  7. 第5章 Linux网络编程基础

    第5章 Linux网络编程基础 5.1 socket地址与API 一.理解字节序 主机字节序一般为小端字节序.网络字节序一般为大端字节序.当格式化的数据在两台使用了不同字节序的主机之间直接传递时,接收 ...

  8. python全栈开发从入门到放弃之socket网络编程基础

    网络编程基础 一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务 ...

  9. Linux高并发网络编程开发——10-Linux系统编程-第10天(网络编程基础-socket)

    在学习Linux高并发网络编程开发总结了笔记,并分享出来.有问题请及时联系博主:Alliswell_WP,转载请注明出处. 10-Linux系统编程-第10天(网络编程基础-socket) 在学习Li ...

  10. C#网络编程基础知识

    C#网络编程基础知识一 1.IPAddress类 用于表示一个IP地址.IPAddress默认构造函数 public IPAddress(long address);一般不用 其中Parse()方法最 ...

随机推荐

  1. 使用java代码批量删除新浪微博

    首先开骂,新浪微博@#@!,不经我同意就转发各种微博,制造垃圾,还不提供微博批量删除功能,摆明了的流氓行为,可耻可恨,遭人唾弃! SSLClient.java import org.apache.ht ...

  2. 【BZOJ2144】Throw 数论

    题目大意 给你三个数\(a,b,c\),每次你可以选择一个数\(s_1\),再选择一个数\(s_2\),把\(s_1\)变成\(2s_2-s_1\),但要求\(s_3\)不在\(s_1\)到\(2s_ ...

  3. 【支付宝】支付 系统繁忙,请稍后再试(ALIN10146)

    https://openclub.alipay.com/read.php?tid=6918&fid=60 我碰到的是这个问题导致 把signType 改为  RSA2   改成      

  4. Eslint相关知识和配置大全

    ESLint最初是由Nicholas C. Zakas 于2013年6月创建的开源项目.它的目标是提供一个插件化的javascript代码检测工具. 代码检查是一种静态的分析,常用于寻找有问题的模式或 ...

  5. 洛谷P1829 [国家集训队]Crash的数字表格

    题目描述 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b)表示能同时整除a和b的最小正整数.例如,LCM(6, ...

  6. https搭建实例

    :(用的)https://www.coderecord.cn/lets-encrypt-wildcard-certificates.html :acme.shvim .acme.sh/account. ...

  7. Codeforces 1076D Edge Deletion(最短路树)

    题目链接:Edge Deletion 题意:给定一张n个顶点,m条边的带权无向图,已知从顶点1到各个顶点的最短路径为di,现要求保留最多k条边,使得从顶点1到各个顶点的最短距离为di的顶点最多.输出m ...

  8. Libre OJ 130、131、132 (树状数组 单点修改、区间查询 -> 区间修改,单点查询 -> 区间修改,区间查询)

    这三题均可以用树状数组.分块或线段树来做 #130. 树状数组 1 :单点修改,区间查询 题目链接:https://loj.ac/problem/130 题目描述 这是一道模板题. 给定数列 a[1] ...

  9. CodeForces - 589A(字符串处理)

    题目链接:http://codeforces.com/problemset/problem/589/A 题目大意:给定n个邮件地址,任何电子邮件地址都将显示为“login @ domain”,其中: ...

  10. 使用 MongoDB 存储日志数据

    使用 MongoDB 存储日志数据     线上运行的服务会产生大量的运行及访问日志,日志里会包含一些错误.警告.及用户行为等信息.通常服务会以文本的形式记录日志信息,这样可读性强,方便于日常定位问题 ...