Socket是进程间通信的一种方式,与其他进程间通信的一个主要不同是:能实现不同主机间的进程间通信,网络上各种各样的服务大多都是基于Socket来完成通信的,要解决网络上两台主机间的通信问题,首先要唯一标识该进程,在TCP/IP网络协议中,就是通过(IP地址,协议,端口号)三元组来标识进程的,解决了进程标识问题,就有了通信的基础了

TCP是一种面向连接的传输层协议,TCP Socket是基于一种Client-Server的编程模型,服务端监听客户端的连接请求,一旦建立连接即可以进行传输数据,那么,TCP Socket编程的介绍也分为客户端和服务端。

客户端编程:

1.创建Socket;2.连接到远程服务器;3.发送数据;4.接收数据;5.关闭socket

当我们打开www.baidu.com时,浏览器所做的就是以上5个步骤,在Socket中具有这种行为特征的被称为Client,客户端主要是连接远程系统并获取数据;

(Socket中另一种行为称为Server,服务器使用Socket来接收连接以及提供数据,和客户端正好相反,所以,www.baidu.com是HTTP服务器,浏览器是HTTP客户端)

# _*_ encoding:utf-8 _*_
import socket
#1.创建Socket
s = socket.socket()
host = socket.gethostname()
port = 12345 #2.建立与服务器的链接
s.connect((host,port)) #3.接收数据
print (s.recv(1024)) #4.发送数据
message = 'GET / HTTP/1.1\r\n\r\n'
print (s.sendall(message)) #5.关闭连接
s.close()

服务端编程:

1.打开socket;2.绑定到特定的地址以及端口上;3.监听连接;4.建立连接;5.接收/发送数据 

绑定Socekt:函数bind可以用来将socket绑定到特定的地址和端口上,绑定完成后,可以开启监听模式

监听连接listen:将socket置于监听模式,该函数带有一个参数backlog,用来控制连接的个数,如果设为10,那么有10个连接正在等待处理,此时,第11个请求过来时,将会被拒绝。

接收连接:当有客户端向服务器发送连接请求时,服务器会接收连接

# _*_ encoding:utf-8 _*_

import socket

#1.创建socket对象
s = socket.socket() #获取本地主机名
host = socket.gethostname() #设置端口
port = 12345 #2.绑定端口
s.bind((host,port)) #3.等待客户端连接,监听socket对象
s.listen(5) while True:
c,addr = s.accept() #建立客户端连接
print ('连接地址:',addr)
c.send('欢迎访问百度!')
#c.close() #关闭连接

Python的网络编程 Socket编程的更多相关文章

  1. Day8 - Python网络编程 Socket编程

    Python之路,Day8 - Socket编程进阶   本节内容: Socket语法及相关 SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台 ...

  2. Python之路,Day8 - Socket编程进阶

    Python之路,Day8 - Socket编程进阶   本节内容: Socket语法及相关 SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台 ...

  3. 【爬坑】Python 3.6 在 Socket 编程时出现类型错误 TypeError: a bytes-like object is required, not 'str'

    1. 问题描述 Python 3.6 在 Socket 编程时出现错误如下 Traceback (most recent call last): File "F:/share/IdeaPro ...

  4. python网络编程-socket编程

     一.服务端和客户端 BS架构 (腾讯通软件:server+client) CS架构 (web网站) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 二.OSI七层 ...

  5. Day10 Python网络编程 Socket编程

    一.客户端/服务器架构 1.C/S架构,包括: 1.硬件C/S架构(打印机) 2.软件C/S架构(web服务)[QQ,SSH,MySQL,FTP] 2.C/S架构与socket的关系: 我们学习soc ...

  6. Python(七)Socket编程、IO多路复用、SocketServer

    本章内容: Socket IO多路复用(select) SocketServer 模块(ThreadingTCPServer源码剖析) Socket socket通常也称作"套接字" ...

  7. 网络编程——socket编程

    一.客户端/服务端架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网企业处处是C/S架构 C/S架构与socket的关系:学习socket就是为了完成C/S架构的开发 二.OSI七层 一个 ...

  8. HUST-计算机网络实验-socket编程

    随笔---HUST计网实验:socket编程 博主大三在读,第一次写随笔,水平有限,就当记录一下学习的过程,顺便面试前复习项目的时候看看. 实验要求: 编写一个 Web 服务器软件,要求如下: 基本要 ...

  9. python网络编程socket编程(TCP、UDP客户端服务器)

    摘录 python核心编程 使用socket()模块函数创建套接字——通信端点 >>> from socket import * >>> tcpSock = soc ...

随机推荐

  1. activemq控制面板含义

    Name 消息队列的名称 Number Of Pending Messages 等待消费的消息数量,即未出队列的消息数量.可以理解为总接收数-总出队列数 (未持久化的话,重启acmq后会清零) Num ...

  2. 使用eclipse 开发lisp

    https://www.ibm.com/developerworks/cn/opensource/os-eclipse-lispcusp/ eclipse有一个插件,可以支持lisp的开发,叫cusp ...

  3. [转] ASP.NET MVC 模型绑定的功能和问题

    摘要:本文将与你深入探究 ASP.NET MVC 模型绑定子系统的核心部分,展示模型绑定框架的每一层并提供扩展模型绑定逻辑以满足应用程序需求的各种方法. 同时,你还会看到一些经常被忽视的模型绑定技术, ...

  4. IOS中微信摇一摇声音无法播放解决办法

    在IOS中第一次调用play方法播放音频会被阻止,必须得等用户有交互动作,比如touchstart,click后才能正常调用,所以可以在摇一摇之前提醒用户点击一下开始游戏的按钮或者给用户一个弹窗,用户 ...

  5. 线程5--GCD简介

    /******************************************************/  同步函数  (1)并发队列:不会开线程  (2)串行队列:不会开线程  异步函数   ...

  6. java,JsonFormat格式化日期问题

    今天使用以下代码格式日期字段 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; 发现这样渲 ...

  7. 序列化模块1 json

    ......得到一个 字符串 的结果 过程就叫序列化 字典 / 列表 / 数字 /对象 -序列化->字符串 为什么要序列化 # 1.要把内容写入文件 序列化 # 2.网络传输数据 序列化 字符串 ...

  8. 阿里云服务器被他人通过SSH暴力破解后的安全加固

    背景说明:我登录阿里云服务器控制台时,收到几条安全警告信息. 从图中可以知道,对方的IP地址是47.97.68.118,通过SSH登录方式,登录时用我服务器里的admin用户,然后用穷举法暴力破解ad ...

  9. bae使用nodejs遇到的问题---‘Fix depends failed. Please check requirements.txt.’

    今天尝试了百度开放云里面的nodejs云引擎,部署没有任何问题,修改文件后发现了发布不了,去查看发布设置发现了问题: Fix depends failed. Please check requirem ...

  10. 【代码笔记】iOS-JASidePanelsDemo(侧滑)

    一,效果图. 二,工程图. 三,代码. AppDelegate.h #import <UIKit/UIKit.h> @class JASidePanelController; @inter ...