资源简介
my_socket是将文件从windows传输到linux,my_socket_verify是将linux下的文件传到windows(因为我只写了单向的,verify只是做了一个验证而已)

代码片段和文件信息
/*************************************************************************
> File Name: main.c (/socket client)
> Author: Clara_Dong
> E-mail: 947641297@qq.com
> Created Time: 2018年03月10日 星期六 21时15分43秒
************************************************************************/
#include
#include
#include
#include
#include
#include
#include
#include
void error(const char *msg)//定义一个指向字符常量的指针msg,*msg的值为const,不能修改
{
perror(msg);//将错误信息输给msg 错误输出函数
exit(0);//程序正常退出
}
int main(int argc char *argv[])
{
int sockfdportnon=-1;
struct sockaddr_in serv_addr;//sockaddr_in结构体把port和addr 分开储存在两个变量中
struct hostent *server;//hostent是host entry的缩写hostent结构体
char buffer[256];
if (argc < 3) {
fprintf(stderr“usage %s hostname port\n“ argv[0]);
exit(0);
}
portno = atoi(argv[2]);
//建立socket套字
sockfd = socket(AF_INET SOCK_STREAM 0);////返回sockfdsockfd是描述符唯一标识一个socket
//AF_INET 是socket的协议族:IPV4;SOCK_STREAM是socket类型;0是指的是protocol指定协议,当protocol为0时,会自动选择type类型对应的默认协议
if (sockfd < 0)
error(“ERROR opening socket“);
server = gethostbyname(argv[1]);
if (server == NULL) {
fprintf(stderr“ERROR no such host\n“);
exit(0);
}
bzero((char *) &serv_addr sizeof(serv_addr));
//初始化ip和port
serv_addr.sin_family = AF_INET;
bcopy((char *)server->h_addr(char *)&serv_addr.sin_addr.s_addrserver->h_length);
serv_addr.sin_port = htons(portno);//htons是将整形变量从主机字节顺序变成网络字节顺序
//connect将socket套接字描述符与服务器端的ip+port联系起来
//调用connect函数
if (connect(sockfd(struct sockaddr *) &serv_addrsizeof(serv_addr)) < 0)
error(“ERROR connecting“);
//建立连接
printf(“Connecting...“);
FILE*fp=fopen(“data.txt““rb“);//以二进制方式打开文件
if(fp == NULL){//检验data.txt文件是否存在
printf(“Cannot open the file check out please.“);
system(“pause“);
exit(0);
}
bzero(buffer256);
int nCount;
while((nCount=fread(buffer1256fp))>0){//fread读取成功返回值为实际读回的数据个数(单位为Byte)
n=write(sockfdbuffernCount);
}
//发送信息
//n = write(sockfdbufferstrlen(buffer));//将buffer里面的整个内容都写到sockfd里面去
if (n < 0)
error(“ERROR writing to socket“);
bzero(buffer256);
//接收回复
n = read(sockfdbuffer255);
if (n < 0)
error(“ERROR reading from socket“);
printf(“%s\n“buffer);
fclose(fp);
//确认通信后关闭socket
close(sockfd);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-03-11 09:18 my_socket\
目录 0 2018-03-10 21:20 my_socket\client\
文件 292 2017-10-25 16:46 my_socket\client\Makefile
文件 4750 2018-03-10 15:48 my_socket\client\data.txt
文件 3043 2018-03-10 21:16 my_socket\client\main.c
文件 2693 2018-03-10 21:20 my_socket\client\main.o
文件 71150 2018-03-10 21:20 my_socket\client\socket_client.exe
目录 0 2018-03-11 09:08 my_socket\server\
文件 539 2017-10-25 16:46 my_socket\server\Makefile
文件 2234 2018-03-11 09:07 my_socket\server\main.c
文件 7452 2018-03-10 21:20 my_socket\server\main.o
文件 11886 2018-03-10 21:20 my_socket\server\socket_server
目录 0 2018-03-10 18:17 my_socket_verify\
目录 0 2018-03-10 21:23 my_socket_verify\client\
文件 292 2017-10-25 16:46 my_socket_verify\client\Makefile
文件 2778 2018-03-10 21:17 my_socket_verify\client\main.c
文件 2511 2018-03-10 21:23 my_socket_verify\client\main.o
文件 4750 2018-03-10 21:28 my_socket_verify\client\recdata.txt
文件 70766 2018-03-10 21:23 my_socket_verify\client\socket_client.exe
目录 0 2018-03-10 21:24 my_socket_verify\server\
文件 539 2017-10-25 16:46 my_socket_verify\server\Makefile
文件 2269 2018-03-10 21:17 my_socket_verify\server\main.c
文件 7480 2018-03-10 21:24 my_socket_verify\server\main.o
文件 11915 2018-03-10 21:24 my_socket_verify\server\socket_server
相关资源
- 用Socket编程实现FTP
- PC -- 单片机的串口数据传输系统设计
- 通用数据传输平台GTP
- TCP_UDP对结构体加密数据传输
- 《TCP/IP:协议分析与应用编程》课后
- 计算机网络socket编程实验
- CJ∕T188-2018户用计量仪表数据传输技术
- CJ/T 188—2018《户用计量仪表数据传
- WiFi智能小车app
- STM32的SIM900A的GPRS数据传输
- 使用MSP432-ESP8266实现小车红外测距和数
- 3个Activity跳转和数据传输
- Linux网络编程-网络基础-socket编程-高并
- 设备联机检测上线、下线、数据传输
- STM32实现GPRS与服务器数据传输
- socket编程基础编写基于GUI界面的SMTP客
- 基于stm32的无线数据传输
- 考试系统程序包括客户端服务端sock
- IRIG-B码对时,项目的源程序及当时的
- CUDA && GPU 数据传输测试
- STM32使用uip协议栈实现TCP数据传输源码
- STM32实现GPRS与服务器数据传输 相关源
- 华工计网编程实验
- 基于STM32的WIFI模块进行数据传输
- 基于STM32F1和ESP8266的MQTT数据传输
- EnDat接口数据传输协议.pdf
- Linux网络编程-网络基础-socket编程-高并
- SI4463完整DEMO板原理、PCB
- Socket编程。ppt
- 黑马_Linux网络编程-网络基础-socket编程
评论
共有 条评论