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

資源簡介

TCP協(xié)議實現(xiàn)客戶端/服務(wù)器,能上傳下載文件,客戶端能顯示進(jìn)度,能隨時終止上傳下載

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?
#include?


#pragma?comment(lib“ws2_32.lib“)

#define?SERVER_PORT?8600
#define?BACKLOG?10
HANDLE?event;
SOCKET?client;
unsigned?int?end=0;
unsigned?int?force_end=0;

/*進(jìn)行下載*/
unsigned?int?_stdcall?download(void?*p);
/*進(jìn)行上傳*/
unsigned?int?_stdcall??update(void?*p);

int?main()
{
WSADATA?WSData;
HANDLE?hfile;
struct?sockaddr_in?server_addr;
char?IP[20];
char?filename[100];
unsigned?char?choice;
int?ret;
HANDLE??hThread;??
pthread_t?pthread;
char?flag;
event?=?CreateEvent(?NULL?TRUE?TRUE?NULL?);
if?((WSAStartup(MAKEWORD(22)&WSData))!=0)
{
printf(“socket?initial?error!\n“);
return?-1;

}


if((client=socket(AF_INETSOCK_STREAMIPPROTO_TCP))==-1)
{
printf(“create?socket?error!\n“);
WSACleanup();
return?-1;
}

printf(“please?input?the?server?IP:“);
scanf(“%s“IP);

memset(&server_addr?0?sizeof(struct?sockaddr_in));
server_addr.sin_family=AF_INET;
server_addr.sin_port=htons(SERVER_PORT);
server_addr.sin_addr.s_addr=inet_addr(IP);

printf(“正在連接,請稍后...\n“);
ret=connect(client(struct?sockaddr?*)&server_addrsizeof(server_addr));

while(ret==-1)
{

printf(“連接服務(wù)器失敗,可能原因:服務(wù)器未打開.\n“);
????????printf(“等待服務(wù)器響應(yīng)...\n“);
????????Sleep((DWORD)500);?
ret=connect(client(struct?sockaddr?*)&server_addrsizeof(server_addr));
}

printf(“連接成功.\n“);

printf(“按任意鍵進(jìn)入主界面\n“);

getchar();

while(1)
{
system(“cls“);?
printf(“1.上傳文件\n“);
printf(“2.下載文件\n“);
printf(“3.結(jié)束程序\n“);
printf(“按p暫停上傳按c繼續(xù)按Esc終止當(dāng)前文件操作\n“);
printf(“輸入相應(yīng)序號進(jìn)行所需操作:“);


scanf(“%d“&choice);
printf(“\n\n\n“);

send(client&choice10);
switch(choice)
{
case?1: memset(filename‘\0‘100);
printf(“輸入上傳文件名:“);
scanf(“%s“filename);

hfile=CreateFile(filenameGENERIC_READFILE_SHARE_READNULLOPEN_EXISTINGFILE_ATTRIBUTE_NORMALNULL);?

if?(hfile==INVALID_HANDLE_VALUE)?
{?
??????????????? perror(“CreateFile“);
printf(“可能原因:文件不存在請檢查文件名\n“);
getchar();
getchar();
break;
}



if(send(clientfilenamesizeof(filename)0)<0)
{

perror(“recv“);
return?-1;
}

hThread=(HANDLE)_beginthreadex(NULL0(unsigned?int?(__stdcall?*)(void?*))update(LPVOID)(&hfile)NULL&pthread);


/* while(end!=1)
{
flag=getchar();
if(flag?==?‘p‘?)
{

printf(“文件已暫停按下c鍵可使傳輸繼續(xù)\n“);
ResetEvent(event);//設(shè)為不發(fā)信號狀態(tài)
}
if(flag==‘c‘)
{
printf(“文件傳輸已繼續(xù)\n“);
SetEvent(event);
}
}
if(end==1)
{
printf(“上傳文件完畢\n“);
}

*/
while(1)
{
if(end==1)
break;
if(kbhit())
{
flag=getch();
if(flag==‘p‘)
{
printf(“文件已暫停按下c鍵可使傳輸繼續(xù)\n“);
ResetEvent(event);

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????7571??2010-08-15?14:18??client.c

?????文件???????6330??2010-08-15?14:30??server.c

-----------?---------??----------?-----??----

????????????????13901????????????????????2


評論

共有 條評論

相關(guān)資源