socket发送字符串,不要转换成byte[]流
别人做的一个系统提供一个端口的接口我来调用,,必须得用tcp/ip进行发送操作命令,,但是我这边发送byte[]流,别人根本接手不到
就是发送一个字符串,,不要转换成byte[]流发送
string connisCanStr="";//声明探测连接是否成功的字符串
string commisStr="";
Socket sock=null;
try
{
string connStr="conn test....";
sock=NetService.ConnectServer("192.168.100.40",9998);
byte[] connBs=Encoding.ASCII.GetBytes(connStr);
sock.Send(connBs,connBs.Length,0);//发送命令
byte[] connBytes=new byte[20];//声明字节数组,
int isconnbytes=0;//返回实际接受内容的字符数
isconnbytes=sock.Receive(connBytes,connBytes.Length,0);
connisCanStr=Encoding.ASCII.GetString(connBytes,0,isconnbytes);
//sock.Close();
if(connisCanStr.Substring(0,1)=="+"){
string commandStr="add(domain){\ndomainname=bbbbb.com\ndomain=bbbbb.com\nuserPassword=123456\n}\n.";
byte[] commBy=Encoding.ASCII.GetBytes(commandStr);
sock.Send(commBy,commBy.Length,0);
byte[] recvCommby=new byte[1024];
int recvcommbycount=0;
recvcommbycount=sock.Receive(recvCommby,recvCommby.Length,0);
commisStr=Encoding.ASCII.GetString(recvCommby,0,isconnbytes);
}
}
catch(Exception ex)
{
if(sock!=null)
{
sock.Close();
}
}
finally{
// string quitStr="exit\r";
// byte[] quitbs=Encoding.ASCII.GetBytes(quitStr);
// sock.Send(quitbs,quitbs.Length,0);
// sock.Close();
}
Console.WriteLine(connisCanStr+"\n"+commisStr);
Console.ReadLine();
以下是别人提供的文档。
推荐使用高级模式编写连接程序。所以重点介绍针对高级模式进行介绍。
首先以tcp 方式连接eyou_scriptd 高级模式端口。连接成功,会返回服务器端的反
馈信息,如果允许连接则返回一行这样的文字”+0000 hello”。
eyou_scriptd高级模式返回的信息都是一行以回车结束的字符串,格式为以’+’或’-’
开头,然后接四位数字,如果不足四位,前面补0,之后一个空格之后是一个描述状态
的字符串。如果字符串以’+’开头,则表明操作成功(等效于简单模式的’succ’),如果以’-’
开头则表明发生错误(等效于简单模式的’fail’),后面的数字是错误号码,空格之后的字
符串是错误的具体描述。可以用来作为调试信息。
得到连接成功的操作信息,就可以发送操作命令。操作命令结束之后在一个新行中
发送一个单独的’.’提交执行。服务器对命令进行分析执行,返回上述格式的反馈信息。
从中分析执行结果。
退出并断开连接,在一个新行中发送’exit’并回车。则服务器断开连接