【发布时间】:2014-02-19 17:40:21
【问题描述】:
我有一台 PBX 机器,我需要使用 Ip 和端口号以及用户名和密码进行通信。目前我可以使用 IP 地址和端口号连接到机器。但是在发送用户名和机器的密码进行身份验证我没有从机器中获取所需的数据到文本文件中,而是将用户名和密码以这样的格式发送到机器到文本文件中。
这是我在 c# 中的代码..
ipaddress = "";
int port = int.Parse("");
textfileSaveLocation = "";
byte[] data = new byte[1024];
string stringData;
//string input;
IPAddress ipadd = IPAddress.Parse(ipaddress);
IPEndPoint ipend = new IPEndPoint(ipadd,port);
Socket sock = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);
sock.NoDelay = false;
try
{
sock.Connect(ipend);
textBox4.AppendText("Connected to host" + "\r\n");
}
catch (Exception dfg)
{
textBox4.AppendText("Problem connecting to host" + "\r\n");
textBox4.AppendText(dfg.ToString ()+"\r\n");
return;
}
try
{
int recv = sock.Receive(data);
stringData = Encoding.ASCII.GetString(data, 0, recv);
textBox4.AppendText(stringData + "\r\n");
while (true)
{
Byte[] bBuf;
string buf;
Application.DoEvents();
buf = String.Format("{0}/{1}", "SMDR", "PCCSMDR");
bBuf = Encoding.ASCII.GetBytes(buf);
sock.Send(bBuf);
data = new byte[1024];
recv = sock.Receive(data);
stringData = Encoding.ASCII.GetString(data, 0, recv);
textBox4.AppendText(stringData + "\r\n");
string df = "";
try
}
我试图从两天内找出错误但无法找出..请帮我找出我哪里出错了..
【问题讨论】:
-
虽然我不知道您使用什么协议进行通信,但您发送的消息可能需要一些终止字符,例如
"SMDR/PCCSMDR\n",以便服务器知道您已完成发送消息。任何基于 TCP 的协议都需要消息的长度前缀或终止后缀。 -
@C.Evenhuis 我正在使用 TCP/IP 协议并使用以太网(LAN)线与机器通信。这是我机器的链接。这是建议用户名和密码的链接@ 987654321@
-
@C.Evenhuis 我正在使用以太网/IP 协议向机器发送消息
-
请不要在问题标题中包含有关所用语言的信息,除非没有它就没有意义。标记用于此目的。
标签: c# sockets tcp tcplistener tcp-ip