socket创建服务端和客户端

看情况选择相对应的套接字
*面向连接的传输--tcp协议--可靠的--流式套接字(SOCK_STREAM)
*面向无连接的传输--udp协议--不可靠的--数据报套接字(SOCK_DGRAM)

在liunx中  telnet ip port 可以当成临时客服端

服务端示例:

创建服务端示例:
from socket import *

#创建套接字(参数:地址族类型,套接字类型,选定子协议类型)
sockfd = socket(AF_INET,SOCK_STREAM,proto = 0)

#绑定地址(功能:绑定地址,参数(ip,port))
sockfd.bind(("0.0.0.0",9099))

#设置监听(参数:监听队列的大小)
sockfd.listen(5)

#等待接收连接(会进行阻塞,当客户端连接就往下运行)
#返回值:connfd 新的套接字,用于和客户端通信,add 连接客户端的地址(ip,port)
print("Waiting for connect...")
connfd,addr = sockfd.accept()
print("Connect from",addr)

#收发消息(没接收到消息也会进行阻塞)
#参数:一次接收消息的大小字节(bytes格式)
data = connfd.recv(1024)
print(data)

#要发送的内容(bytes格式),返回实际发送的字节数
n = connfd.send(b"Receive your message")
print(n)
#关闭套接字
connfd.close()
sockfd.close()

客户端示例:
from socket import *

#创建套接字
sockfd = socket(AF_INET,SOCK_STREAM)

#发起连接
server_addr = ("127.0.0.1",9099)
sockfd.connect(server_addr)

#收发消息
data = input("发送>>")
sockfd.send(data.encode())  #将字符串转换成二进制

data = sockfd.recv(1024)
print("接收到:",data.decode())

#关闭字节套
sockfd.close()  

原文地址:https://www.cnblogs.com/zengsf/p/9595241.html

时间: 2024-10-01 21:35:48

socket创建服务端和客户端的相关文章

java中socket创建服务端与客户端即时对聊

package tool; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; impo

Cocos2dx3.x使用socket创建服务端和客户端改进

由于一个网友使用笔者写的SocketClient作为游戏客户端网络数据接收类,出现了一些问题 这个问题就是因为当执行onRecv时创建了一个Sprite(Sprite::create("1.png")),而创建完成后sprite的数据混乱,或者MoveTo时返回的也是混乱数据.原因在于在多线程申请内存,在主线程使用就会出现问题.为了解决这个问题,特意看了cocos2dx的WebSocket的实现方式,发现当接收到数据时并不是立即调用回调函数,而是将数据信息加入到消息队列,当主线程更新时

Socket通信服务端和客户端总结

服务端:1.创建一个Socket对象.用来侦听的.2.绑定端口和IP3.开启侦听4.开始接受客户端连接5.创建一个代理通信Socket对象.用来通信的.6.发送消息接收消息7.收到客户端的道别,也会回一个:我也走了8.关闭Socket 客户端:1.创建Socket对象2.连接服务器3.发送消息接受消息4.停止连接服务器和客户端都可以.发消息:我要走了.5.关闭Socket

使用socket模拟服务端与客户端传输文件

package netFile; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.Closeable; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.net.Socket; public class SocketTask { //客

11.网络编程:socket、服务端、客户端

socket: socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求. python中使用socket来进行网络连接传输 由图可知: socket中客户端需要进行的操作是:建立,连接,传输数据 ,接收数据,关闭连接 服务端需要进行的操作是:建立,绑定IP地址和端口,等待连接,接收数据,传输数据 ,关闭连接 服务端: 建立:socket.socket() 绑定端口:bind(('IP地址',端口)),其中地址和端口号是一个 tuple

java 界面编程用socket实现服务端与客户端的循环通信。

服务端: package 实验五聊天; import java.awt.BorderLayout; import java.awt.EventQueue; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.ne

node-http创建服务端和客户端

http模块是nodeJS的核心模块.它可以创建客户端(发起请求)和服务端(监听请求). 1. 客户端client 应用: 1. 爬虫 2. 中间层-解决跨域问题 let http = require('http'); // 服务端发送的请求不存在跨域问题 let client = http.request({ hostname: 'localhost', port: 3000, path: '/aaa?name=lyra', method: 'POST', headers: { 'Conten

socket服务端和客户端

#!/usr/bin/env python#encoding: utf-8import socketdef handle_request(client): buf = client.recv(1024) client.send("HTTP/1.1 200 OK\r\n\r\n") client.send("Hello, World") def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREA

Socket——服务端与客户端交互的简单实现

服务端: package socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socke