socket 简历网络连接

# server 代码

import socketimport threadingimport time# s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# s.connect((‘www.sina.com.cn‘,80))# s.send(b‘GET / HTTP/1.1\r\nHost: www.sina.com.cn\r\nConnection: close\r\n\r\n‘)## buffer = []# while True:#     d = s.recv(1024)#     if d:#         buffer.append(d)#     else:#         break## data = b‘‘.join(buffer)# s.close()## header, html = data.split(b‘\r\n\r\n‘, 1)# print(header.decode(‘utf-8‘))## with open(‘sina.html‘, ‘wb‘) as f:#     f.write(html)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.bind((‘127.0.0.1‘,9999))s.listen(5)print(‘Waiting for connection...‘)

def tcplink(sock, addr):    print(‘Accept new connection from %s:%s...‘%addr)    sock.send(b‘Welcome!‘)    while True:        data = sock.recv(1024)        time.sleep(1)        if not data or data.decode(‘utf-8‘) == ‘exit‘:            break        sock.send((‘Hello, %s!‘%data.decode(‘utf-8‘)).encode(‘utf-8‘))    sock.close()    print(‘Connection from %s:%s closed.‘ % addr)

while True:    sock, addr = s.accept()    t = threading.Thread(target=tcplink, args=(sock, addr))    t.start()

# client 代码

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect((‘127.0.0.1‘, 9999))print(s.recv(1024).decode(‘utf-8‘))for data in [b‘liu‘, b‘hong‘, b‘tao‘]:    s.send(data)    print(s.recv(1024).decode(‘utf-8‘))

s.send(b‘exit‘)s.close()

原文地址:https://www.cnblogs.com/LewisAAA/p/9249848.html

时间: 2024-10-11 12:19:28

socket 简历网络连接的相关文章

Socket建立网络连接方法

建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket . 套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认. 1.服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求. 2.客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字. 为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字

网络连接相关基础知识笔记

一.常说的TCP/IP的含义 TCP/IP协议簇并不仅仅指TCP协议和IP协议,实际它包括了一系列协议组成的集合,如:TCP,IP,UDP,FTP,SMTP,DNS,ARP,PPP等 TCP与UDP协议都属于传输层协议,但有很大不同,TCP是面向连接的协议,提供的是可靠的数据流服务,TCP采用"带重传的肯定确认"机制来实现传输的可靠性,实现了一种"虚电路",因为从物理上来说,并不是真正在两台主机间建立了连接,这种连接只是存在于逻辑上的.最大的开销出现在通信前建立连接

Android开发:本机Tomcat搭建服务器,客户端socket网络连接不上问题以及D-LINK端口转发设置

我是用自己的电脑搭建服务器,首先问题是我们需要在路由器上端口映射,外网才能访问到自己的电脑,如何端口映射可以看看这篇文章: http://blog.csdn.net/zhoubin1992/article/details/45917775 一.D-LINK端口转发设置 我的是D-link如图: 名称写你客户端的名称. IP地址:路由器给本机分配的IP地址,一般以192.168开头.查询方法:cmd下ipconfig 填写私有端口就是路由器需要打开的端口,也可以设置一个区间 公共端口的就是外网要访

Java TCP使用Socket进行网络文件传送(5)

作者 : 卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/39324737 本文演示,TCP使用Socket进行网络文件传送,实现将客户端的文件upload.txt上传到服务器. 1)客户端,上传文件upload.txt,并接受服务器反馈上传成功与否消息. 2)服务器,接受客户端文件,将接收到的文件命名为Rece.txt,同时给客户端发送消息"上传成功". 客户端,代码如下: package upload.file.cli

WAS集群系列(2):数据库连接低级错误——网络连接问题

环境 项目点 指标 WAS版本 7.0 应用服务器操作系统 Windows 2008 应用服务器系统位数 64bit 数据库服务器操作系统 CentOS 5.6 数据库版本 Oracle 11.0.2.1 今天搭建WAS集群后,发布应用程序包及启动均成功,但在测试数据库连接时提示,不成功,建议查看KVM日志. 于是到日志路径下查看相关日志(此处参考为D:\IBM\WebSphere\AppServer\profiles\AppSrv01\logs\server1\SystemOut.log),信

CentOS下netstat + awk 查看tcp的网络连接状态

执行以下命令: #netstat -n | awk ‘/^tcp/ {++state[$NF]} END {for(key in state) print key."\t".state[key]}’ 会得到类似下面的结果,具体数字会有所不同: FIN_WAIT_1 286 FIN_WAIT_2 960 SYN_SENT 3 LAST_ACK 32 CLOSING 1 CLOSED 36 SYN_RCVD 144 TIME_WAIT 2520 ESTABLISHED 352 #差不多等于

iOS socket原理及连接过程详解

连接过程图解(度娘的拿过来用) 1.网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket. 2.我们要讨论的是网络中进程之间如何通信?首要解决的问题是如何唯一标识一个进程!在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的.其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标

linux-netstat输出的网络连接状态信息

[[email protected] ~]# netstat -n|head  -3 Active Internet connections (w/o servers) Proto    Recv-Q   Send-Q    Local Address        Foreign Address         State       tcp        0        52     192.168.1.165:22     192.168.1.10:59337     ESTABLISH

项目日志之基于Java socket的网络通讯

Java API网络类包中的Socket类是网络上运行的两个程序间双向通信的一端,它既可以接受请求,也可以发送请求,利用它可以较为方便的编写网络上数据的传递.我们打算通过Java中基于Socket的网络编程实现一个简单的网络通信程序.这就是我们团队项目(开发一款简单的通讯软件,其基本功能是实现一对一的网络信息通讯,并努力向一对多和多对多靠近)的主要内容. 一.Java socket通信开发原理(查阅资料): 服务器使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端