适合新手的网络编程,用socket传文件(本例传的是jpg图片) 用到sendfile函数

服务器端代码:用来接受客户端发来的文件

#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<assert.h>
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>
int main(int argc,char* argv[])
{
assert(argc>2);
FILE *filefd=fopen("a.jpg","ab");
struct sockaddr_in address;
address.sin_family=AF_INET;
inet_pton(AF_INET,argv[1],&address.sin_addr);
address.sin_port=htons(atoi(argv[2]));
int sockfd=socket(PF_INET,SOCK_STREAM,0);
assert(sockfd!=0);
int ret=bind(sockfd,(struct sockaddr*)&address,sizeof(address));
assert(ret!=-1);
listen(sockfd,5);
struct sockaddr_in client;

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当然可以!以下是一个使用Python编写的客户端和服务器端程序示例,实现客户端发送一张jpg图片,服务端接收并保存这个图片: **客户端程序:** ```python import socket # 服务器地址和端口 server_address = ('127.0.0.1', 8000) # 图片路径 image_path = 'path/to/your/image.jpg' def send_image(): # 创建TCP套接字 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: # 连接服务器 client_socket.connect(server_address) # 读取图片数据 with open(image_path, 'rb') as file: image_data = file.read() # 发送图片数据 client_socket.sendall(image_data) print('图片发送成功!') except Exception as e: print('图片发送失败:', str(e)) finally: # 关闭套接字连接 client_socket.close() # 调用函数发送图片 send_image() ``` **服务器端程序:** ```python import socket # 服务器地址和端口 server_address = ('127.0.0.1', 8000) # 保存图片的路径 save_path = 'path/to/save/image.jpg' def receive_image(): # 创建TCP套接字 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: # 绑定服务器地址和端口 server_socket.bind(server_address) # 监听连接 server_socket.listen(1) print('等待客户端连接...') # 接收客户端连接 client_socket, client_address = server_socket.accept() print('客户端已连接:', client_address) # 接收图片数据 image_data = client_socket.recv(1024) # 保存图片到本地文件 with open(save_path, 'wb') as file: file.write(image_data) print('图片接收成功!保存路径:', save_path) except Exception as e: print('图片接收失败:', str(e)) finally: # 关闭套接字连接 server_socket.close() # 调用函数接收图片 receive_image() ``` 在客户端程序中,我们创建了一个TCP套接字,连接到指定的服务器地址和端口。然后,读取指定路径下的图片文件,并将图片数据通过套接字发送给服务器。 在服务器端程序中,我们创建了一个TCP服务器,绑定到指定的地址和端口。然后,它监听客户端的连接,并接受连接后的客户端套接字。当客户端发送数据时,服务器接收图片数据并保存到指定路径下的文件。 请将`server_address`修改为实际的服务器地址和端口,将`image_path`修改为你想要发送的图片文件路径,将`save_path`修改为你想要保存图片的路径。 希望这能帮到你!如果有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值