socket

网络编程:实现计算机与计算机之间的通信
局域网,城域网,广域网
IP地址是有4个8位组成,每个数字不能大于255,网络地址+本机地址组成(A:前一位是网络地址+;B:前两位是网络地址+;C:前三位是网络地址+)
分五类:
A类:1.0.0.0~126.255.255.255(127.0.0.1 是本地回环地址)
B类:128.0.0.0~191.255.255.255
C类:192.0.0.0~223.255.255.255
D类:用于组播
E类:
七层模型OSI的参考模型:
应用层(http);
表示层;
会话层;
传输层:(协议:TCP UDP)定义传输数据的端口号,以及流控和差错效验;
网络层:进行逻辑地址寻址
数据链路层;真正的寻找硬件寻址
物理层;
查看本机IP:cmd 输入 ipconfig 管理员
电脑是否可以上网:ping www.baidu.com
socket()函数
------>
服务器 客户端
<-----
服务器
s.bind()绑定地址(host,port),
s.listen()监听
s.accept()客户端连接 等待连接的到来
s.recv()接收
s.send()发送
s.close()关闭
客户端
创建socket()函数
s.connect((host,port))连接服务器
s.recv()接收
s.send()发送

s.close()关闭

服务器

import socket
import threading
serversocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
serversocket.bind(("127.0.0.1",9999))#绑定服务地址和端口号
print("服务器已等待")
serversocket.listen(5)#最多同时接收5个
print("最多同时连接5个客户")
c=serversocket.accept()#接收客户端的连接,此c是元组,表示得到的客户端的地址和端口
print("正在等待客户端")
#发送和接收单独线程处理
def myrerv(c):
    while True:
        msg = c[0].recv(1024)  # 接收消息
        print(msg.decode())
threading._start_new_thread(myrerv,(c,))

def myinput():
    while True:
        msg=input()
        c[0].send(msg.encode())
threading._start_new_thread(myinput())

客服端

import socket
import threading
#创建
client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
client.connect(('127.0.0.1',9999))
#连接服务器
def myrerv(c):
    while True:
        msg=c.recv(1024)
        print(msg.decode())
threading._start_new_thread(myrerv,(client,))
def myinput():
    while True:
        msg=input()
        client.send(msg.encode())
threading._start_new_thread(myinput())
简单的
#服务器
import socket
#创建socket对象,面向对象
serversocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#绑定IP和端口号
serversocket.bind(('127.0.0.1',8888))
print("服务器已启动")
#监听
serversocket.listen(5)
#接受客户端
while True:
    clientsocket, adress = serversocket.accept()
    print("以接受客户端")
    print(clientsocket)
    print(adress)
    sendmess=input('服务器说:')
    clientsocket.send(sendmess.encode('utf-8'))
    mess=clientsocket.recv(1024)
    print(mess.decode('utf-8'))
    clientsocket.close()
#客户端
import socket
#创建
sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#连接服务器
while True:
    sock.connect(('127.0.0.1',8888))
    print("客户端已连接")
    mess=sock.recv(1024)
    print(mess.decode('utf-8'))
    sendmess=input('客户端说:')
    sock.send(sendmess.encode('utf-8'))
    sock.close()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值