📄 send.h
字号:
#include <windows.h>
#include <winsock.h>
#include <commctrl.h>
#include "transfer.h"
#pragma comment(lib,"Ws2_32")
char szRecvPath[MAX_PATH];
char szSendPath[MAX_PATH];
SOCKET SSever;
SOCKET SClient;
BOOL CALLBACK DlgSendProc(
HWND hwnd, // handle to dialog box
UINT uMsg, // message
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
bool Sever(HWND hwnd)
{
WSADATA ws;
WSAStartup(MAKEWORD(2,2),&ws);
SOCKET SockSever=socket(AF_INET,SOCK_STREAM,0);
struct sockaddr_in my_addr,their_addr;
my_addr.sin_port=htons(830);
my_addr.sin_addr.S_un.S_addr=INADDR_ANY;
my_addr.sin_family=AF_INET;
if(bind(SockSever,(struct sockaddr*)&my_addr,sizeof(struct sockaddr)))
{
MessageBox(NULL,"绑定失败","",MB_OK);
return false;
}
if(listen(SockSever,10))
{
MessageBox(NULL,"监听失败","",MB_OK);
return false;
}
SetWindowText(hwnd,"正在监听……");
int size=sizeof(struct sockaddr_in);
SSever=accept(SockSever,(struct sockaddr*)&their_addr,&size);
return true;
}
bool Client(DWORD IpAddr)
{
WSADATA ws;
WSAStartup(MAKEWORD(2,2),&ws);
SClient=socket(AF_INET,SOCK_STREAM,0);
struct sockaddr_in their_addr;
their_addr.sin_addr.S_un.S_addr=IpAddr;
their_addr.sin_family=AF_INET;
their_addr.sin_port=htons(830);
if(connect(SClient,(struct sockaddr *)&their_addr,sizeof(struct sockaddr)))
{
MessageBox(NULL,"连接失败","",MB_OK);
return false;
}
return true;
}
DWORD WINAPI SeverThread(
LPVOID lpParameter
)
{
HWND hwnd=FindWindow(NULL,"Transfer");
if(!Sever(hwnd))
return 0;
if(INVALID_SOCKET==SSever)
{
MessageBox(hwnd,"接受连接失败","警告",MB_OK);
}
SaveFileDlg(hwnd,szRecvPath);
RecvFile(szRecvPath,SSever);
return 1;
}
DWORD WINAPI ClientThread(
LPVOID lpParameter
)
{
HWND hwnd=FindWindow(NULL,"Transfer");
// SOCKET sock;
DWORD dwAddress=0,dwAddr1=0,dwAddr2=0,dwAddr3=0,dwAddr4=0;
HWND hwndctrl=NULL;
hwndctrl=GetDlgItem(hwnd,IDC_IPADDRESS);
if(hwndctrl)
SendMessage(hwndctrl, IPM_GETADDRESS, 0, (LPARAM)&dwAddress);
else
return 1;
if(!dwAddress)
{
MessageBox(hwnd,"请输入IP地址","警告",MB_OK);
return 1;
}
OpenFileDlg(hwnd,szSendPath);
dwAddr1=dwAddress>>24;
dwAddr4=dwAddress<<24;
DWORD dwAddress2=dwAddress&0x00ff0000;
dwAddr2=dwAddress2>>8;
dwAddr3=(dwAddress&0x0000ff00)<<8;
dwAddress=dwAddr1+dwAddr2+dwAddr3+dwAddr4;
if(!Client(dwAddress))
return 1;
SendFile(szSendPath,SClient);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -