资源简介

使用scoket套接字文件传输和对话的c语言程序!有服务器端和客户端!需同时打开两个文件在运行结果窗口中操作!(c语言写的)

资源截图

代码片段和文件信息

//客户端
#include 
#include 
#include 
#pragma comment(lib“ws2_32.lib“)
void Cwsastartup();
void Csocket();
void Cbind();
void Caccept();
void closeSocket();
void Cwsacleanup();
void recvWords();
void recvFile();
void sendRequest();
void sendFile();
SOCKET sockClient;
SOCKADDR_IN addrServer;
WSADATA wsaData;
SOCKET sockConn;
char recvBuf[1024]=““;
char sendBuf[1024]=““;
void Cwsastartup()
{
if(WSAStartup(MAKEWORD(11)&wsaData)!=0)
{
return;
}
}
void Csocket()
{
struct protoent *ppe;
ppe=getprotobyname(“tcp“);
sockClient=socket(AF_INETSOCK_STREAMppe->p_proto);
if(sockClient == INVALID_SOCKET)

printf(“错误“);  
WSACleanup();
return;
}
}
void Cbind()
{
char str[15];
printf(“请输入主机的IP地址——格式如(127.0.0.1)\n“);
gets(str);
addrServer.sin_addr.s_addr=inet_addr(str);
addrServer.sin_family=AF_INET;
addrServer.sin_port=htons(6000);
}
void Caccept()
{
int len;
printf(“等待服务器......\n“);
Sleep(3000);
len=connect(sockClient(SOCKADDR*)&addrServersizeof(SOCKADDR));
while(len==SOCKET_ERROR)
{
len=connect(sockClient(SOCKADDR*)&addrServer&len);
Sleep(5000);
printf(“连接不成功!请重新建立连接!\n“);
exit(0) ;
}
printf(“连接成功!\n“);
Sleep(2000);
}
void closeSocket()
{
closesocket(sockClient);
}
void Cwsacleanup()
{
WSACleanup();
}
void recvWords()
{  
fflush(stdin);  //清空缓存区
printf(“开始聊天!输入exit退出!\n“);
while(1)
{
printf(“client:\n“);
fflush(stdin);
gets(sendBuf);
send(sockClientsendBuf10240);
if(strcmp(“exit“sendBuf)==0)
{
printf(“退出聊天程序!\n“);
break;
}
recv(sockClientrecvBuf10240);
if(strcmp(“exit“recvBuf)==0)
{
Sleep(2000);
printf(“服务器已退出聊天程序!\n“);
printf(“重新发送请求\n“);
break;
}
printf(“\nserver:\n%s\n\n“recvBuf);
}
}
void recvFile()
{
FILE *fp;
int len_fileName;
int jlen_block;
long  totalBlock ;
char fileName[100] = ““;
printf(“准备接收文件\n“);
recv( sockClient fileName 100 0);//接收文件名
len_fileName=strlen(fileName);
if(len_fileName == SOCKET_ERROR)
return;
fileName[len_fileName] = ‘\0‘;
fp = fopen(fileName“wb“);
recv( sockClient (char *)&totalBlocksizeof(long) 0);//接收总文件块数
for(j=1;j<=totalBlock ; j++)
{
printf(“..........正在接收第%d块..........\n “j); 
recv(sockClient(char *)&len_blocksizeof(int)0);
if((recv(sockClient recvBuf len_block 0) )!= SOCKET_ERROR)
{
printf(“..........接收成功..........\n“);
}
else 
printf(“接收失败!\n“);
fwrite(recvBufsizeof(char)len_blockfp);
}
printf(“******文件名长度 %d接收文件名为%s*******\n“len_fileNamefileName);
fclose(fp);
}
void sendRequest()
{
Sleep(2000);  //睡眠等待2秒
system(“cls“);
printf(“★***********************★\n“);
printf(“☆         1.聊天        ☆\n“);
printf(“☆  2.请求服务器传送文件 ☆\n“);
printf(“☆   3.向服务器传送文件  ☆\n“);
printf(“☆          4.退出       ☆\n“);
printf(“★***********************★\n“);
printf(“请选择:\n“);
fflush(stdin);  //清

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     目录          0  2008-10-18 12:37  文件传输和聊天程序(c语言)

     目录          0  2008-10-18 12:36  文件传输和聊天程序(c语言)\客户端

     文件    9489408  2008-10-16 15:41  文件传输和聊天程序(c语言)\客户端\Hellou.ncb

     文件        883  2008-09-18 10:11  文件传输和聊天程序(c语言)\客户端\Hellou.sln

    ..A..H.      9728  2008-10-16 15:41  文件传输和聊天程序(c语言)\客户端\Hellou.suo

     目录          0  2008-10-18 12:36  文件传输和聊天程序(c语言)\客户端\debug

     文件     373040  2008-09-22 19:33  文件传输和聊天程序(c语言)\客户端\debug\Hellou.ilk

     目录          0  2008-10-18 12:36  文件传输和聊天程序(c语言)\客户端\Hellou

     文件       3998  2008-09-18 10:12  文件传输和聊天程序(c语言)\客户端\Hellou\Hellou.vcproj

     文件       1407  2008-10-16 15:41  文件传输和聊天程序(c语言)\客户端\Hellou\Hellou.vcproj.SSE54.sa.user

     文件         13  2008-09-27 14:31  文件传输和聊天程序(c语言)\客户端\Hellou\weiyun.txt

     文件         11  2008-09-26 21:02  文件传输和聊天程序(c语言)\客户端\Hellou\1.txt

     文件     957072  2008-09-27 14:33  文件传输和聊天程序(c语言)\客户端\Hellou\turboc2.rar

     文件       5887  2008-09-27 14:40  文件传输和聊天程序(c语言)\客户端\Hellou\Khellou.c

     目录          0  2008-10-18 12:36  文件传输和聊天程序(c语言)\客户端\Hellou\Debug

     文件      12936  2008-09-22 19:33  文件传输和聊天程序(c语言)\客户端\Hellou\Debug\BuildLog.htm

     目录          0  2008-10-18 12:36  文件传输和聊天程序(c语言)\服务器端

     文件    9489408  2008-10-16 11:05  文件传输和聊天程序(c语言)\服务器端\Fineme.ncb

     文件        883  2008-09-18 10:23  文件传输和聊天程序(c语言)\服务器端\Fineme.sln

    ..A..H.      9728  2008-10-16 11:05  文件传输和聊天程序(c语言)\服务器端\Fineme.suo

     目录          0  2008-10-18 12:36  文件传输和聊天程序(c语言)\服务器端\debug

     文件     382608  2008-09-28 12:34  文件传输和聊天程序(c语言)\服务器端\debug\Fineme.ilk

     目录          0  2008-10-18 12:36  文件传输和聊天程序(c语言)\服务器端\Fineme

     文件       3998  2008-09-18 11:01  文件传输和聊天程序(c语言)\服务器端\Fineme\Fineme.vcproj

     文件       1407  2008-10-16 11:05  文件传输和聊天程序(c语言)\服务器端\Fineme\Fineme.vcproj.SSE54.sa.user

     文件         24  2008-09-18 10:30  文件传输和聊天程序(c语言)\服务器端\Fineme\123.txt

     文件         13  2008-09-18 10:29  文件传输和聊天程序(c语言)\服务器端\Fineme\weiyun.txt

     文件         11  2008-09-18 10:30  文件传输和聊天程序(c语言)\服务器端\Fineme\1.txt

     文件         24  2008-09-18 10:33  文件传输和聊天程序(c语言)\服务器端\Fineme\wei.txt

     文件     957072  2007-05-09 00:00  文件传输和聊天程序(c语言)\服务器端\Fineme\turboc2.rar

............此处省略6个文件信息

评论

共有 条评论