今天我们来介绍一下在linux网络环境下使用socket套接字实现两个进程下文件的上传,下载,和退出操作! 在socket套接字编程中,我们当然可以基于TCP的传输协议来进行传输,但是在文件的传输中,如果我们使用TCP传输,会造成传输速度较慢的情况,所以我们在进行文件传输的过程中,最好要使用UDP传输. 在其中,我们需要写两个程序,一个客户端,一个服务端,在一个终端中,先运行服务端,在运行客户端,在服务端和客户端都输入IP地址和端口号,注意服务端和客户端的端口号要相同,然后选择功能,在linux…
网络编程中,使用多路IO复用的典型场合: 1.当客户处理多个描述字时(交互式输入以及网络接口),必须使用IO复用. 2.一个客户同时处理多个套接口. 3.一个tcp服务程序既要处理监听套接口,又要处理连接套接口,一般需要用到IO复用. 4.如果一个服务器既要处理TCP,又要处理UDP,一般也需要用到IO复用. 5.如果一个服务器要处理多个服务或者多个协议,一般需要用到IO复用. linux提供了select.poll.epoll等方法来实现IO复用,三者的原型如下: int select(int…
通过上一篇博客的学习,你应该对基于epoll的事件触发机制有所掌握,并且通过阅读sio.c/sio.h应该也学会了如何封装epoll以及如何通过设计令epoll更加实用(用户回调,用户参数). 简单回顾一下sio.h中的关键接口,我们接下来将会基于”sio事件触发层“来实现更加上层的“sio_stream(TCP)层”,“sio_dgram(UDP)层”,这种分层设计对于任何架构与程序设计都是非常普遍且有效的. 在sio层, 1,我们可以注册一个fd,提供一个事件回调函数和一个用户参数: str…
一.套接字 socket 1.1 作用:实现不同主机间的进程间通信(不同电脑.手机等设备之间收发数据) 1.2 分类:udp.tcp 1.3 创建 socket import socket socket.socket(AddressFamily, Type) AddressFamily:AF_INET:用于网络间进程通信:AF_UNIX:用于同一台机器中 Type:SOCK_DGRAM:upd 协议使用:SOCK_STREAM:tcp 协议使用 二.upd socket 2.1 创建 udp s…
//udp接收消息 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h>…
宏定义 首先介绍两个宏定义,看如下代码 代码1 /************************************************************************* > File Name: test.c > Author: KrisChou > Mail:zhoujx0219@163.com > Created Time: Thu 28 Aug 2014 10:11:59 AM CST *******************************…
基于TCP流协议的socket网络文件传输Demo: 实现:C语言功能:文件传输(可以传任何格式的文件) /*************************************************************************        > File Name: Server.c        > Author: SongLee        > E-mail: lisong.shine@qq.com         > Created Time:…
1.流程 服务器: 创建socket: 绑定端口: 监听: 监听到有连接请求,接受请求: 建立连接,开始对话. 客户端: 创建socket: 请求建立连接: 连接建立成功,开始对话. 2.实例代码 //服务器客户端简单聊天工具之服务器(tcp/ip) #include<stdio.h> #include<sys/types.h> #include<sys/socket.h> #include<errno.h> #include<netinet/in.h…
一.pcap文件解析 依赖的库:libpcap,头文件:pcap/pcap.h 获取pcap文件:tcpdump,-i:指定监听接口,默认配置好的最小的号码的接口.-w:指定存入文件,将原始报文存入指定文件.-r:读取指定文件. 解析pcap文件: 1.pcap_t *pcap_open_offline(char *fname, char *ebuf); 打开指定的pcap文件. fname:文件名. ebuf:传出参数,传出pcap_open_offline出错返回NULL时的错误消息. 返回…
TCP协议提供的是一种可靠的,复杂的,面向连接的数据流(SOCK_STREAM)传输服务,它通过三段式握手过程建立连接.TCP有一种"重传确认"机制,即接收端收到数据后要发出一个肯定确认的信号,发送端如果收到接收端肯定确认的信号,就会继续发送其他的数据,如果没有,它就会重新发送. 而UDP协议是一种无连接的,不可靠的数据报(SOCK_DGRAM)传输服务.使用UDP套接口不用建立连接,服务端在调用socket()生成一个套接字并调用bind()绑定端口后就可以进行通信(recvfrom…