目录
- # -*- coding: utf-8 -*-
- """
- __author__ = 孤寒者
- """
- import socket
-
- # 1.服务器对象 socket.AF_INET:使用IPV4; socket.SOCK_STREAM:使用socket套接字。
- server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-
- # 2.绑定IP和端口号
- server.bind(("127.0.0.1",8080))
-
- # 3.监听 设置接收数
- server.listen(128)
- print('服务器开启', 8080)
-
- # 4.处理连接
- # accept()理解就是三次握手建立连接。
- # accept是一个阻塞的方法(你不来我就不动!),等待连接,每建立一个连接就会创建一个单独的通道。
- # conn:通道参数;addr:通道地址(客户端连接服务端的IP和端口号,这个客户端的端口号是随机生成的!)。
-
- new_cli, addr = server.accept()
-
- # 打印一下ip和端口号的类型
- print('来自一个新的连接', addr, type(addr))
-
- # 5.设置接收数据的大小
-
- data = new_cli.recv(1024)
- print(data)
- # 6.关闭这个连接的通道
- new_cli.close()
- # 关闭整个服务器
- server.close()
- # -*- coding: utf-8 -*-
- """
- __author__ = 孤寒者
- """
- import socket
-
- # 建立服务器对象 通过打印这个client服务器对象可知:默认使用的是IPV4,协议是TCP。
- client=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-
- # 指定服务器的ip和端口号
- client.connect(('127.0.0.1',8080))
- # 发送数据给服务器
- client.send(b'hello server')
- # 指定发送给服务器的文件大小
- data = client.recv(1024)
- print(data)
- import socket
- import threading
-
-
- def handle_func(new_sock):
- while True:
- data = new_sock.recv(4) # 接收数据
- print(data)
- if data is None:
- break
- new_sock.close()
-
- while 1:
- # 服务器对象 socket.AF_INET:使用IPV4; socket.SOCK_STREAM:创建一个socket套接字。
- server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-
- # 绑定服务器
- server.bind(("127.0.0.1", 8000))
- # 监听
- server.listen(128)
- print('服务器开启', 8000)
-
- # accept是一个阻塞的方法(你不来我就不动!),等待连接,每建立一个连接就会创建一个单独的通道。
- # conn:通道参数;addr:通道地址(客户端连接服务端的IP和端口号,这个客户端的端口号是随机生成的!)。
- new_cli, addr = server.accept()
- # 打印一下ip的类型
- print('来自一个新的连接', addr, type(addr))
- server.setblocking(False) # 设置套接字为非阻塞 找epoll使用 解决网络的等待问题
- # 注意:协程要依附于线程!
- task = threading.Thread(target=handle_func, args=(new_cli,))
- task.start()
- import socket
- # 服务器对象
- server = socket.socket()
- '''
- 等同于:server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- socket.AF_INET:使用IPV4;
- socket.SOCK_STREAM:创建一个socket套接字。
- '''
-
- # 1.绑定服务器
- server.bind(("0.0.0.0",8800)) #0.0.0.0是允许所有人来访问;8800是端口号
-
- # 2.监听
- server.listen(5)
-
- while True:
- # 3.等待连接
- # accept是一个阻塞的方法(你不来我就不动!),等待连接,每建立一个连接就会创建一个单独的通道。
- # conn:通道参数;addr:通道地址。
- conn,addr=server.accept()
-
- # 4.接收数据
- data=conn.recv(1024)
- print(data)
-
- response="HTTP/1.1 200 OK\r\nContent-Type: text/html;charset=utf-8;\r\n\r\n
我很帅!"
-
- # 5.发送数据
- conn.send(response.encode())
- print("已经响应")
-
- # 6.关闭
- server.close()
- import socket
-
- # 建立服务器对象 通过打印这个client服务器对象可知:默认使用的是IPV4,协议是TCP。
- client=socket.socket()
-
- # 1.建立连接
- client.connect(("www.baidu.com",80))
-
- # 构造请求报文
- data=b"GET / HTTP/1.1\r\nHost: www.baidu.com\r\n\r\n"
-
- # 2.发送请求
- client.send(data)
- res=b""
-
- # 3.接收数据
- temp=client.recv(4096)
- while temp:
- print("*"*50)
- res += temp
- temp = client.recv(4096)
- print(temp.decode())
-
- # 4.断开连接
- client.close()
爬取到的内容如下:
D:\Anaconda3\envs\pythonProject\python.exe C:\Users\--.DESKTOP-M7596IU\PycharmProjects\pythonProject\jbkljvhcgfd.py
**************************************************
wrapper .s_ipt_wr:hover #kw{border-color:#a7aab5}#head_wrapper #kw{width:512px;height:16px;padding:12px 16px;font-size:16px;margin:0;vertical-align:top;outline:0;box-shadow:none;border-radius:10px 0 0 10px;border:2px solid #c4c7ce;background:#fff;color:#222;overflow:hidden;box-sizing:content-box}#head_wrapper #kw:focus{border-color:#4e6ef2!important;opacity:1}#head_wrapper .s_form{width:654px;height:100%;margin:0 auto;text-align:left;z-index:100}#head_wrapper .s_btn{cursor:pointer;width:108px;height:44px;line-height:45px;padding:0;background:0 0;background-color:#4e6ef2;border-radius:0 10px 10px 0;font-size:17px;color:#fff;box-shadow:none;font-weight:400;border:none;outline:0}#head_wrapper .s_btn:hover{background-color:#4662d9}#head_wrapper .s_btn:active{background-color:#4662d9}#head_wrapper .quickdelete-wrap{position:relative}#s_top_wrap{position:absolute;z-index:99;min-width:1000px;width:100%}.s-top-left{position:absolute;left:0;top:0;z-index:100;height:60px;padding-left:24px}.s-top-left .mnav{margin-right:31px;margin-top:19px;display:inline-block;position:relative}.s-top-left .mnav:hover .s-bri,.s-top-left a:hover{color:#315efb;text-decoration:none}.s-top-left .s-top-more-btn{padding-bottom:19px}.s-top-left .s-top-more-btn:hover .s-top-more{display:block}.s-top-right{position:absolute;right:0;top:0;z-index:100;height:60px;padding-right:24px}.s-top-right .s-top-right-text{margin-left:32px;margin-top:19px;display:inline-block;position:relative;vertical-align:top;cursor:pointer}.s-top-right .s-top-right-text:hover{color:#315efb}.s-top-right .s-top-login-btn{display:inline-block;margin-top:18px;margin-left:32px;font-size:13px}.s-top-right a:hover{text-decoration:none}#bottom_layer{width:100%;position:fixed;z-index:302;bottom:0;left:0;height:39px;padding-top:1px;overflow:hidden;zoom:1;margin:0;line-height:39px;background:#fff}#bottom_layer .lh{display:inline;margin-right:20px}#bottom_layer .lh:last-child{margin-left:-2px;margin-right:0}#bottom_layer .lh.activity{font-weight:700;text-decoration:underline}#bottom_layer a{font-size:12px;text-decoration:none}#bottom_layer .text-color{color:#bbb}#bottom_layer a:hover{color:#222}#bottom_layer .s-bottom-layer-content{text-align:center}互联网药品信息服务资格证书 (京)-经营性-2017-0020