当客户端连接成功
就可以向服务器传输文件数据
对于服务器
可以用api函数accept()返回新套接字句柄向客户端传输或
接收文件数据
客户端发送文件 代码
...
SOCKET s;
char text[100];
CFile file("C:\例子.txt",CFile:modeReadWrite);
CString str;
sockaddr_in addr;
addr.sin_family=AF_INET;
addr.sin_port=htons(100);
addr.sin_addr.S_un.S_addr=inet_addr(smtpip);
s=::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(::connect(s,(sockaddr *)addr,sizeof(addr))!=-1)
{
str=file.GetFileTitle();
::send(s,str.GetBuffer(1),sizeof(str));
file.Read(text,100);
while(text!=EOF)
{
file.Read(text,100);
::send(s,&text,100);
}
::CloseHandle(file.m_hWnd);
::CloseHandle(s);
}
创建一个文件对象file
然后调用函数GetFileTitle()获取文件标题
通过send()将获取的文件标题发送到服务器
以便服务器创建相同文件名的文件
程序循环读取文件内容到缓冲区text中
并且将每次读到的数据发送到服务器