如何在HP-UX上通过TCPIP协议传输文件?
作者:佚名
上传时间:2023-05-26
运行软件:C语言 socket编程
软件版本:HP-UX 11i v3
版权申诉
本示例代码演示了如何通过TCP/IP协议在HP-UX系统下传输文件。实现方式是使用socket编程,创建客户端和服务端,通过套接字通信完成文件传输。附有详细的注释。
客户端:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <netdb.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/types.h>
#define PORT 5000
#define BUFSIZE 1024
void error(char *msg)
{
perror(msg);
exit(1);
}
int main(int argc, char *argv[])
{
int sockfd, n, count = 0;
struct sockaddr_in serv_addr;
struct hostent *server;
char buffer[BUFSIZE];
FILE *fp;
if (argc != 3) {
fprintf(stderr,"usage %s hostname filename\n", argv[0]);
exit(1);
}
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
error("ERROR opening socket");
server = gethostbyname(argv[1]); //通过hostname获取主机名
if (server == NULL) {
fprintf(stderr,"ERROR, no such host\n");
exit(0);
}
memset(&serv_addr, 0, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
bcopy((char *)server->h_addr,
(char *)&serv_addr.sin_addr.s_addr,
server->h_length);
serv_addr.sin_port = htons(PORT);
if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0)
error("ERROR connecting");
fp = fopen(argv[2], "rb");
if (fp == NULL)
error("ERROR opening file");
while(!feof(fp)) {
memset(buffer, 0, BUFSIZE);
n = fread(buffer, 1, BUFSIZE, fp);
if (n < 0)
error("ERROR reading from file");
count += send(sockfd, buffer, n, 0);
if (count < 0)
error("ERROR writing to socket");
}
fclose(fp);
close(sockfd);
return 0;
}
服务端:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <netdb.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/types.h>
#define PORT 5000
#define BUFSIZE 1024
void error(char *msg)
{
perror(msg);
exit(1);
}
int main(int argc, char *argv[])
{
int sockfd, newsockfd, n, count = 0;
socklen_t clilen;
struct sockaddr_in serv_addr, cli_addr;
char buffer[BUFSIZE];
FILE *fp;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
error("ERROR opening socket");
memset(&serv_addr, 0, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY;
serv_addr.sin_port = htons(PORT);
if (bind(sockfd, (struct sockaddr *) &serv_addr,
sizeof(serv_addr)) < 0)
error("ERROR on binding");
listen(sockfd, 5);
clilen = sizeof(cli_addr);
newsockfd = accept(sockfd,
(struct sockaddr *) &cli_addr,
&clilen);
if (newsockfd < 0)
error("ERROR on accept");
fp = fopen("output.bin", "wb");
if (fp == NULL)
error("ERROR opening file");
while ((n = recv(newsockfd, buffer, BUFSIZE, 0)) > 0) {
count += fwrite(buffer, 1, n, fp);
if (count < 0)
error("ERROR writing to file");
}
fclose(fp);
close(newsockfd);
close(sockfd);
return 0;
}
免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com
用户评论
相关推荐
如何在HP-UX上通过TCPIP协议传输文件?
本示例代码演示了如何通过TCP/IP协议在HP-UX系统下传输文件。实现方式是使用socket编程,创建客户端和服务端,通过套接字通信完成文件传输。附有详细的注释。客户端:#include &l
HP-UX 11i v3
C语言 socket编程
2023-05-26 13:30
wince下通过TCPIP协议传输数据
使用EVC开发的通过TCPIP协议来传输数据,包括了服务器端和客户端的源码
application/x-rar
0B
2020-05-15 07:15
.net通过TCPIP方式传输文件
本人最近做了一个TCPIP方式文件传输的例子,只需要IP地址,端口,存储地址就可以实现你想要的,后期还需要做文件的断点续传功能,已经测试成功,现没什么bug,希望能给大家提供帮助,觉得好了给我好评啊!
CS
0B
2020-05-13 21:54
TCPIP文件传输
纯TCP/IP文件传输,S端与C端代码。包含简易的登陆验证
RAR
0B
2019-01-09 05:21
如何在HP-UX上使用scp命令传输文件
本示例代码介绍了如何在HP-UX操作系统上使用scp命令传输文件,通过设置密钥可以避免每次输入密码。#!/bin/sh# 设置密钥,避免每次输入密码ssh-keygen -t rsa# 将公钥
HP-UX 11.31
OpenSSH
2023-05-24 01:38
基于TCPIP协议的VB点对点文件传输实例
两个基于TCPIP协议的VB点对点文件传输实例,都是想当简单的东西,相信VB的新手朋友一定会喜欢,在VB6下成功编译,两个程序都分为服务端和客户端,先启动服务端,再启动客户端,然后启动连接,就可以在服
RAR
0B
2020-05-29 06:34
通过TCP/IP协议实现文件传输
本示例演示了如何通过TCP/IP协议在客户端和服务器端之间实现文件传输。具体实现方式为客户端将需要传输的文件转换成二进制流,向服务器端发起请求,服务器端接收后解析文件内容并保存到指定位置。客户端代码
Python 3.8.2
PyCharm 2020.1
2023-04-24 07:00
TCPIP通讯协议.pptx
TCPIP通讯协议.pptx下载地址:https://dude6.com/q/a/4871655.html
如何在Windows上通过VMware安装Linux同时实现Linux与主机Windows文件传输
How to install Linux via VMware on Windows, and achieve both Linux and host (Windows) file transfer
DOC
0B
2019-06-27 18:10
如何在java中使用SFTP协议安全的传输文件
主要介绍了如何在java中使用SFTP协议安全的传输文件,帮助大家更好的理解和使用JSch,感兴趣的朋友可以了解下
PDF
81KB
2020-11-09 01:41