91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

C語言編寫Socket編寫進程間傳文件,服務器端和客戶端傳文件.

資源截圖

代碼片段和文件信息

/********************************************************************
created: 2006/07/28
filename:? Client.cpp
author: 李創
http://www.cppblog.com/converse/

purpose:
*********************************************************************/

#pragma?comment(lib?“WS2_32“)

#include?
#include?
#include?

#include?“../CommonDef.h“

long g_lLength?=?0;
char* g_pBuff?=?NULL;
char g_szFileName[MAXFILEDIRLENGTH];
char g_szBuff[MAX_PACKET_SIZE?+?1];
SOCKET g_sClient;

//?初始化socket庫
bool?InitSocket();
//?關閉socket庫
bool?CloseSocket();
//?把用戶輸入的文件路徑傳送到server端
bool?SendFileNameToServer();
//?與server端連接
bool?ConectToServer();
//?打開文件失敗
bool?OpenFileError(CCSDef::TMSG_HEADER?*pMsgHeader);
//?分配空間以便寫入文件
bool?AllocateMemoryForFile(CCSDef::TMSG_HEADER?*pMsgHeader);
//?寫入文件
bool?WriteToFile(CCSDef::TMSG_HEADER?*pMsgHeader);
//?處理server端傳送過來的消息
bool?ProcessMsg();

int?main()
{
InitSocket();
ConectToServer();

CloseSocket();

return?0;
}

//?初始化socket庫
bool?InitSocket()
{
//?初始化socket?dll
WSADATA?wsaData;
WORD?socketVersion?=?MAKEWORD(2?2);
if?(::WSAStartup(socketVersion?&wsaData)?!=?0)
{
printf(“Init?socket?dll?error\n“);
exit(-1);
}

return?true;
}

//?關閉socket庫
bool?CloseSocket()
{
//?關閉套接字
::closesocket(g_sClient);
//?釋放winsock庫
::WSACleanup();

return?true;
}

//?與server端連接進行文件的傳輸
bool?ConectToServer()
{
//?初始化socket套接字
if?(SOCKET_ERROR?==?(g_sClient?=?::socket(AF_INET?SOCK_STREAM?IPPROTO_TCP)))
{
printf(“Init?Socket?Error!\n“);
exit(-1);
}

sockaddr_in?servAddr;
servAddr.sin_family?=?AF_INET;
servAddr.sin_port =?htons(PORT);
servAddr.sin_addr.S_un.S_addr?=?::inet_addr(SERVER_IP);
if?(INVALID_SOCKET?==?(::connect(g_sClient?(sockaddr*)&servAddr?sizeof(sockaddr_in))))
{
printf(“Connect?to?Server?Error!\n“);
exit(-1);
}

//?輸入文件路徑傳輸到server端
SendFileNameToServer();

//?接收server端傳過來的信息直到保存文件成功為止
while?(true?==?ProcessMsg())
{
}

return?true;
}

//?把用戶輸入的文件路徑傳送到server端
bool?SendFileNameToServer()
{
char?szFileName[MAXFILEDIRLENGTH];
printf(“Input?the?File?Directory:?“);

fgets(szFileName?MAXFILEDIRLENGTH?stdin);

//?把文件路徑發到server端
CCSDef::TMSG_FILENAME?tMsgRequestFileName;
strcpy(tMsgRequestFileName.szFileName?szFileName);
if?(SOCKET_ERROR?==?::send(g_sClient?(char*)(&tMsgRequestFileName)?sizeof(CCSDef::TMSG_FILENAME)?0))
{
printf(“Send?File?Name?Error!\n“);
exit(-1);
}

return?true;
}

//?處理server端傳送過來的消息
bool?ProcessMsg()
{
CCSDef::TMSG_HEADER?*pMsgHeader;
int?nRecv?=?::recv(g_sClient?g_szBuff?MAX_PACKET_SIZE?+?1?0);

pMsgHeader?=?(CCSDef::TMSG_HEADER*)g_szBuff;

switch?(pMsgHeader->cMsgID)
{
case?MSG_OPENFILE_ERROR: //?打開文件錯誤
{
OpenFileError(pMsgHeader);
}
break;
case?MSG_FILELENGTH: //?文件的長度
{
if?(0?==?g_lLength)
{
g_lLength?=?((CCSDef::TMSG_FILELENGTH*)pMsgHeader)->lLength;

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????6333??2006-08-01?19:45??SocketDemo1\Client.cpp
?????文件????????5819??2006-08-01?19:45??SocketDemo1\Server.cpp
?????目錄???????????0??2013-10-15?16:22??SocketDemo1\

評論

共有 條評論