python——网络基础

#1.网络通讯步骤
确定对端IP地址->确定应用程序端口->确定通讯协议
总结:网络通讯的过程其实就是一个(源端)不断封装数据包和(目的端)不断拆数据包的过程

服务器:
""""
socket是一个接口、传送的对象 连接的通道
SOCK_STREAM:TCP
SOCK_Dgram:UDP
family=AF_INRT  服务器之前的通信
family=AF_UNIX  Unix不同进程间通信
各sk绑定各自的端口
conn是连接server和client的
都是通过conn进行send
evc

"""
import socket
#两个参数 family和type

sk=socket.socket()

address=('127.0.0.1',8000)

sk.bind(address)
#该过程为绑定
# 内容必须为元组

sk.listen(3)
#容纳排列数

print('waiting...')

conn,addr=sk.accept()
#将元组两个变量赋给两个变量

#conn.send('约啊')

# inp=input('>>>')
# conn.send(bytes(inp,'utf-8'))



"""""

client:
<socket.socket fd=284, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0>

server: 
(<socket.socket fd=524, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0,
 laddr=('127.0.0.1', 8000), raddr=('127.0.0.1', 53747)>, ('127.0.0.1', 53747))

两个sk没有任何关系
"""

"""""
server下的方法:一收一发
bind()
listen()
accept()

recv()#收
send()#发
sendall()#将send放在while中循环发送 即将传送的字符全部发送完

clinent下的方法:
connect()
recv()
send()
sendall()

close
"""""


#2.客户端接收
"""""
data=conn.recv(1024)
print(data)
"""

#conn.close()#只关闭了一个用户
#sk.close()#关闭了整个server程序端


#双方交互

while 1:#套住下一个循环 与下部分被引效果一样
    conn,addr=sk.accept()
    while 1:
      try:
          data=conn.recv(1024)
      except Exception as e:
          break
        #上述异常处理是为了防止用户不用exit而选择 直接退出
      if not data:
       break
      """""
        #当客户结束时,接收下一个客户
        conn.close()
        conn,addr=sk.accept()
        print(addr)
        continue
        """"d
     print(str(data,'utf-8'))
     inp=input('>>>')
     onn.send(bytes(inp,'utf-8'))

sk.close


#当收到空的时候 是不会有反应的 参考qq 直接发送不会有反应

客户:

import socket
sk=socket.socket()
print(sk)
address=('127.0.0.1',8000)

sk.connect(address)

#data=sk.recv(1024)#参数为指定收多少

#print(data)
#print(str(data,'utf-8'))#为了转义
#无论是拿还是发 都是bytes类型

#2.客户的发送
"""""
data1=sk.send(bytes('hhh','utf-8'))

"""

#双方进行不断地交互

while True:
    inp=input('>>>')
    if inp =='exit':
        break
    sk.send(bytes(inp,'utf-8'))
    data=sk.recv(1024)
    print(str(data,'utf-8'))

sk.close()
原文地址:https://www.cnblogs.com/zzzi/p/11489005.html