f67
#include
#include
#include
#include
#include
#include
#pragma comment(lib,"Ws2_32")
#define M 512000 //每块传送文件的大小500k
#define portNum 8888 //使用的端口号
void LongToChar(long x,char a[]);//将long型整数转换成字符串
long StrToLong(char str[]);//将字符串转换成long型整数
void getW_name(char waddr[],char wname[]); //获取文件名函数
void sendFile(SOCKET ss); //服务端发送文件函数
int receiveFile(SOCKET sc);//客户端接收文件函数
void chatting_client(SOCKET sc); //客户端聊天函数
void chatting_server(SOCKET s_d); //服务端聊天函数
int client(); //客户端主程序
void server(); //服务端主程序
void main()
{
system("cls");
system("@color 0a");
puts("\n");
puts(" *********************************************************");
puts(" * * ");
puts(" * 欢·迎·使·用·局·域·网·文·件·发·送·工·具 *");
puts(" * * ");
puts(" * * ");
puts(" * * ");
puts(" * 1. 客 户 端 * ");
puts(" * * ");
puts(" * 2. 服 务 端 * ");
puts(" * * ");
puts(" * 3. 结 束 * ");
puts(" * * ");
puts(" * * ");
puts(" * 天乐软件工作室制作 * ");
puts(" * 2008-3-1 * ");
puts(" * 版权所有★欢迎传播 * ");
puts(" *********************************************************\n");
puts("全屏(退出全屏)操作请按:ALT+ENTER\n");
printf("请输入你要选择的端代号(1-3):");
char ch;
char Num[10];
gets(Num);
ch=Num[0];
while(ch >='4' || ch <='0')//检测用户选择的代码是否符合要求
{
printf("\n你的输入有误!请重新输入:");
gets(Num);
ch=Num[0];
}
if('1'==ch)
{
client();
}
else if('2'==ch)
{
server();
}
else if('3'==ch)
{
exit(0);
}
}
int client()
{
system("color 0a");//修改DOS窗口颜色,是其成0A。
WORD wVersion=MAKEWORD(1,1);
WSADATA wsData;
int nResult= WSAStartup(wVersion,&wsData); //启动WINSOCKET
if(nResult !=0)
{
printf("启动Winsock失败!\n");
}
SOCKET sc=socket(AF_INET,SOCK_STREAM,IPPROTO_IP); //创建套接字
if(sc==INVALID_SOCKET)
{
printf("创建套接字失败!\n");
}
SOCKADDR_IN addrSc;
addrSc.sin_family=AF_INET;
addrSc.sin_port=htons(portNum); //保证字节顺序
char IP[20];
again:
printf("请输入服务器的IP地址:");
gets(IP)
;
if( -1==inet_addr(IP) ) //循环检测IP地址是否合法
{
printf("IP地址错误!\n");
goto again;
}
addrSc.sin_addr.S_un.S_addr=inet_addr(IP);