我写了个服务端程序 用户可以用telnet远程登录 要输入用户名和密码
但是telnet每次只发送一个字符 服务端如何取得全部的用户名啊
怎么向客户端发送汉字啊 private static void ServiceClient()
{
Socket client = clientSocket;
bool keepalive = true;
byte[] bytes = new Byte[1024];
string name,pwd;
int bytelen;
Byte[] message = System.Text.Encoding.ASCII.GetBytes("Please Enter UserName:\r\n");
client.Send(message);
bytelen=client.Receive(bytes);
name = Encoding.ASCII.GetString(bytes, 0, bytelen);//获得用户名
message = System.Text.Encoding.ASCII.GetBytes("\r\nPlease Enter Password:\r\n");
client.Send(message);
bytelen=client.Receive(bytes);
pwd = Encoding.ASCII.GetString(bytes, 0, bytelen);//获得密码 Console.WriteLine(name + " " + pwd + "\n");
while (keepalive)
{
}
}
但是telnet每次只发送一个字符 服务端如何取得全部的用户名啊
怎么向客户端发送汉字啊 private static void ServiceClient()
{
Socket client = clientSocket;
bool keepalive = true;
byte[] bytes = new Byte[1024];
string name,pwd;
int bytelen;
Byte[] message = System.Text.Encoding.ASCII.GetBytes("Please Enter UserName:\r\n");
client.Send(message);
bytelen=client.Receive(bytes);
name = Encoding.ASCII.GetString(bytes, 0, bytelen);//获得用户名
message = System.Text.Encoding.ASCII.GetBytes("\r\nPlease Enter Password:\r\n");
client.Send(message);
bytelen=client.Receive(bytes);
pwd = Encoding.ASCII.GetString(bytes, 0, bytelen);//获得密码 Console.WriteLine(name + " " + pwd + "\n");
while (keepalive)
{
}
}
解决方案 »
- 求助:C# Dictionary<string,object>遇到的问题。
- 怎样根据服务名获取其进程的cpu使用率
- dt.rows.cont=0?
- SQL查询结果输出到DATAGRIDVIEW控件的问题
- 我的第一贴——问问有关文件传输的方面的问题
- 在datagrid中加入textbox,在页面中用户可以在textbox中输入数值,然后单击完成按钮的时候怎样可以取得textbox中输入的数值
- 基础连接已经关闭: 接收时发生错误。
- winform中datagridview启用编辑,启用删除没效果
- 关于.net里三角函数的问题
- CrystalReport 问题 在线等
- C# 如何将dataset导出到一个excel的不同sheet中
- VS2005中的窗体哪个属性是让整个窗体变透明的?
http://topic.csdn.net/u/20090729/09/dcdb5347-4e0d-4abc-910e-62e8f87b010f.html汉字是不可能转换为ASCII码的...
----------------------------
从网络上接收数据不是这么接收的,你不能假设对方一次发送的数据正好是你这儿可以接收的。
一般来说,读取数据的时候,应该循环读取直到无数据可读,如果是应答式的传送,检查读到的是否是一次数据,如果不是应答式的,自己分离数据。
谢谢!这段话解决了主要的问题!~请问
while (true) {
bytes = new byte[1024];
int bytesRec = handler.Receive(bytes);
data += Encoding.ASCII.GetString(bytes,0,bytesRec);
if (data.IndexOf("<EOF>") > -1) { //如果以回车作为输入的结束 ,break的条件应该是什么?
break;
}
}
{
int bytesRec = client.Receive(bytes);
name += Encoding.ASCII.GetString(bytes, 0, bytesRec);
if (name.IndexOf("\r\n") > -1)
{
name.Remove(name.IndexOf("\r\n"));
break;
}
}
貌似这样就可以解决了
客户端负责回显是怎么回事?只是将输入输出到显示器?