利用WinSocket发数据(一)

本文分享了使用WinSocket实现TCP协议发送数据的代码,包括文件传输和CRC32校验,适合内网环境,但在外围环境可能受限。
摘要由CSDN通过智能技术生成

帮朋友写的一个利用winsocket发数据的两段代码.本指望可以通过socket来走低层一些的数据交互,没想到还是被封杀。没想到竟然直接检测socket.就没用这种思路往下做下去了;

不过这个过程中也对Winsocket有了一定了解;发出来给有需要的朋友;

计划是利用socket 走tcp协议,然后传输一个特定文件到服务器段,然后服务器段接受这个文件,整个过程有CRC32校验数据完整性,代码在内网测试是ok,的,外围一开始就被杀掉了。fuck.

其他不多说了。代码有详细解释。

发送端程序:

#include "stdafx.h"
#include <winsock2.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#pragma comment(lib,"ws2_32.lib")  //必须引入的静态库  windows 系统会自带;
#define DEFAULT_PORT    5019 // 端口
#define SEND_BUFFER_LENTH 1024  //发送的buffer数据长度不包括crc32和length
#define REVE_BUFFER_LENTH 100   //服务端反馈过来的大小
int main(int argc, char **argv){

	int again=1;
	int msg_len=0;//发送实际len
	int msg_reve_len = 0; //接受实际
	//int addr_len;
	struct sockaddr_in server_addr;
	struct hostent *hp;
	SOCKET connect_sock;
	WSADATA wsaData;
	//文件流
	fstream walletFile;
	//发送buffer 
	//长距离发送必须要做crc16验证 最后4byte 长度 和放crc16值 4byte 
	char sendBuffer[SEND_BUFFER_LENTH+8]={0};
	char recvBuffer[REVE_BUFFER_LENTH]={0};
	// 服务器名称 这个后续可以写上服务器的名字 
	//也可以直接指定IP
	char            *server_name = "localhost"; 
	unsigned short    port = DEFAULT_PORT;
	unsigned int    addr;

	//打开一个文件 目标  二进制打开
	walletFile.open("c:\\test.txt",ios::binary|ios::in|ios::out);
	//先赋初值,清0
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值