文件传送代码分析
来源:互联网 发布:java wait 超时 编辑:程序博客网 时间:2024/05/22 05:12
/************** Sendfile server.cpp *******************
************************ 2004/11/28 ****************/
#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
void main() {
// 初始化
WSADATA wsaData;
int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
if ( iResult != NO_ERROR )
printf("Error at WSAStartup()/n");
// 建立socket
SOCKET server;
server = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );//用tcp协议进行传送
if ( server == INVALID_SOCKET ) {
printf( "Error at socket(): %ld/n", WSAGetLastError() );
WSACleanup();
return;
}
// 绑定socket
sockaddr_in service;
service.sin_family = AF_INET;
service.sin_addr.s_addr = inet_addr( "127.0.0.1" );
service.sin_port = htons(830);
if ( bind( server, (SOCKADDR*) &service, sizeof(service) ) == SOCKET_ERROR ) {
printf( "bind() failed./n" );
closesocket(server);
return;
}
// 监听 socket
if ( listen( server, 1 ) == SOCKET_ERROR )
printf( "Error listening on socket./n");
// 接受连接
SOCKET AcceptSocket;
printf( "Waiting for a client to connect.../n" );
while (1) {
AcceptSocket = SOCKET_ERROR;
while ( AcceptSocket == SOCKET_ERROR ) {
AcceptSocket = accept( server, NULL, NULL );
}
printf( "Client Connected./n");
server = AcceptSocket;
break;
}
// 发送接受数据
// int bytesSent;
char sendbuf[1024];//发送缓冲区
//DWORD dwFileSize;//文件大小
DWORD dwRead;
BOOL bRet;
char filename[]="c://MyMain.java";
HANDLE hFile=CreateFile(filename,GENERIC_READ,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
//dwFileSize=GetFileSize(hFile,NULL);
while(true)
{
bRet=ReadFile(hFile,sendbuf,1024,&dwRead,NULL);
if(bRet==FALSE)
{
MessageBox(NULL,"Read Buf ERROR!","Error",MB_OK);
break;
}
else if(dwRead==0)
{
MessageBox(NULL,"Send file OK!","OK",MB_OK);
break;
}
else
{
send(server,sendbuf,dwRead,0);
}
};
CloseHandle(hFile);
return;
}
传送端 读入c://MyMain.java接受端改为c://syn.txt
这是网上的一段代码 不过是基本的基于tcp协议的网络传送实例
- 文件传送代码分析
- 简单文件传送代码
- c#传送文件代码(文本文件)
- c#传送文件代码(文本文件)
- c#传送文件发送端代码
- c#传送文件发送端代码
- c# socket传送大文件分享代码
- 【Android】Binder传送文件描述符分析
- 传送文件
- 传送文件
- 传送数据与传送代码
- 向远程服务器传送XML文件的java代码
- wordpress文件代码分析
- 文件浏览器代码分析
- 使用Socket传送文件!
- 用C#传送文件
- 通过ssh传送文件
- 飞鸽传书不能传送文件
- 孤儿进程和僵尸进程
- void及void指针深层探索
- 上传
- 引用与指针.C++
- 合并连续数字的算法
- 文件传送代码分析
- 如何修改我的电脑,右键,属性里的技术支持信息
- ActionServlet的init()方法
- Asp.net 2.0 关于Header/title/Meta tages/Style操作的一点小技巧
- CSS自动实现网页打印版本
- 宠物喷活龙 请大家捧场vb做的
- [收藏]个人网页中必不可少的十五大Web API
- Validator 组件
- utf8编码在win32及ubuntu下中文出现乱码问题一例