资源简介
使用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个文件信息
相关资源
- 基于CS的TCP文件传输程序设计
- windows网络编程_文件传输
- Qt TCP聊天室demo
- 自绘CListCtrl聊天列表MFC
- MFC多人聊天室
- Windows+C语言构建网络聊天室内含源程
- 基于socket文件传输的实现源码[C++]
- MFC聊天室含源代码.rar
- 用MFC实现的简单qq聊天
- P2P 聊天室 c++ 版本 附详细文档
- VC++实现两台电脑文件传输(源代码)
- 基于c++和winsocket的局域网聊天源代码
- VC++,CSocket实现网络聊天,可发文件,
- 基于TCP协议的文件传输编程
- vc++课程设计——聊天室
- Socket编写的一个基于MFC的聊天程序源
- 聊天软件,用套接字编写,完整代码
- MFC视频聊天
- mfc聊天程序 网络编程用到的
- 用C++实现的聊天程序
- 基于UDP的简单可视化界面聊天程序c
- C++做的一个聊天室程序
- 基于TCP/IP socket的局域网聊天系统
- vc-基于MFC编程,使用TCP/IP模型编写
- 基于linux C/C++和Qt的聊天程序
- c++实现语音聊天室
- 计算机网络实验设计---基于TCP的网络
- 基于TCP协议VC++6.0实现的聊天程序
- MFC Csocket实现点对点文件传输
- C++多线程网络聊天程序
评论
共有 条评论