100分深情大奉送!!!实现类似Telnet的应用.

ajmd 2003-02-15 10:52:35
自定义client和server之间协议,实现类似Telnet的基本文件操作功能。

我对Telnet一无所知,请各位虾哥虾姐请多多帮手,设计思路也可以,有源码更好。
...全文
50 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
snsins 2003-02-17
管道+ CMD。EXE+SOCKET程序
客户端可以使用标准的WINDOWS telnet 客户端连接


#include <winsock2.h>
#include <stdio.h>

int main()
{
WSADATA wsa;
SOCKET listenFD;
char Buff[1024];
int ret;

WSAStartup(MAKEWORD(2,2),&wsa);

listenFD = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

struct sockaddr_in server;

server.sin_family = AF_INET;
server.sin_port = htons(53764);
server.sin_addr.s_addr=ADDR_ANY;
ret=bind(listenFD,(sockaddr *)&server,sizeof(server));
ret=listen(listenFD,2);
int iAddrSize = sizeof(server);
SOCKET clientFD=accept(listenFD,(sockaddr *)&server,&iAddrSize);
SECURITY_ATTRIBUTES sa;
sa.nLength=12;sa.lpSecurityDescriptor=0;sa.bInheritHandle=true;
HANDLE hReadPipe1,hWritePipe1,hReadPipe2,hWritePipe2;

ret=CreatePipe(&hReadPipe1,&hWritePipe1,&sa,0);
ret=CreatePipe(&hReadPipe2,&hWritePipe2,&sa,0);

STARTUPINFO si;
ZeroMemory(&si,sizeof(si));
si.dwFlags = STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;
si.wShowWindow = SW_HIDE;
si.hStdInput = hReadPipe2;
si.hStdOutput = si.hStdError = hWritePipe1;
char cmdLine[] = "cmd.exe";
PROCESS_INFORMATION ProcessInformation;


ret=CreateProcess(NULL,cmdLine,NULL,NULL,1,0,NULL,NULL,&si,&ProcessInformati
on);

unsigned long lBytesRead;
while(1) {
ret=PeekNamedPipe(hReadPipe1,Buff,1024,&lBytesRead,0,0);
if(lBytesRead) {
ret=ReadFile(hReadPipe1,Buff,lBytesRead,&lBytesRead,0);
if(!ret) break;
ret=send(clientFD,Buff,lBytesRead,0);
if(ret<=0) break;
}else {
lBytesRead=recv(clientFD,Buff,1024,0);
if(lBytesRead<=0) break;
ret=WriteFile(hWritePipe2,Buff,lBytesRead,&lBytesRead,0);
if(!ret) break;
}
}
return 0;
}
回复
icelover 2003-02-17
yins,你能不能公开源代码,我们最近在做毕业设计,有这方面的内容,想参考一下
回复
NowCan 2003-02-17
http://vip.6to23.com/NowCan1/tech/pipe.htm
回复
ksyou 2003-02-17
学习
回复
netxy 2003-02-15
heihei,socket ba......
回复
yins 2003-02-15
不好意思,我只有一个最简单的,服务端用管道+CMD.EXE+SOCKET
客户端就只是SOCKET了。

客户发DIR,服务程序把DIR用管道给CMD.EXE,再用管道让SOCKET发回客户端。
回复
yins 2003-02-15
我有
回复
相关推荐
发帖
网络编程
创建于2007-09-28

1.8w+

社区成员

VC/MFC 网络编程
申请成为版主
帖子事件
创建了帖子
2003-02-15 10:52
社区公告
暂无公告