8、网络编程-TCP客户端

tcp严格区分客户端和服务器,udp不区分,收recvfrom 发sendto

服务器:玩游戏登录时先选择大区,即选择服务器,越近越不卡。提供服务的程序即服务器。

客户端:QQ软件、微信都是客户端,腾讯的服务器是服务器

tcp客户端流程:
1、创建套接字
2、链接服务器
3、收发数据
4、关闭套接字

1. 04-tcp-客户端.py

命令:
终端中vim 04-tcp-client.py

命令:
如果vim后面忘记写文件名字,回车后开始写代码,Esc回到末行模式,wq保存退出,会提示没有文件名,末行输入w 空格 再写文件名 回车
q再退出,回到终端中可以通过cat 文件名查看刚刚文件中的内容

如果文件名中有括号,需要用反斜杠进行转义
在这里插入图片描述

vim打开文件进行写代码

命令: 如果想在光标所在行的上方插入一个空行,敲i进入编辑模式,敲大写的O;
在光标所在行的下方插入一个空行,按小写的o

思路:
用注释搭建流程框架

注意:
不要在文件夹中创建socket.py文件,这样import socket时是用不了的,导入的其实是自己手动建的socket.py,导入的顺序是先导入当前路径下的py,没有再导入系统的

import socket
def main():
# 1、创建tcp套接字
#2、链接服务器
#3、收发数据
#4、关闭套接字

if __name__ == "__main__":
main()

用代码补全

注意:
1、 创建套接字的时候不要用DGRAM,那是udp的套接字
2|、链接服务器是套接字.connect,括号内参数依然是一个元组,链接服务器的代码是由下往上倒着推写的,先确定需要一个元组,然后找变量等于这个元组,元组一个ip 一个port,分别是两个变量,从键盘获取,端口是数字,input获取记得int转化
3、发送数据:udp中是sendto, tcp中是send,send的参数只需要写发送的内容,不需要写对方的ip port

import socket
def main():
	# 1、创建tcp套接字
	tcp_socket = socket.socekt(socket.AF_INET,socket.SOCK_STREAM)
	#2、链接服务器
	
	#如果是绑定固定的服务器和端口,可以用下方一句代码替换下面四行代码
	#tcp_socket.connet(("192.163.33.11",7890))
	
	server_ip = input("请输入绑定服务器的ip:")
	server_port = int(input("请输入绑定服务器的port:"))
	addr = (server_ip,server_port)
	tcp_socket.connet(server_addr)
	#3、收发数据
	send_data = input("请输入你要发送的内容:")
	tcp_socket.send(send_data.encode("utf-8"))
	#4、关闭套接字
	tcp_socket.close()

if __name__ == "__main__":
main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值