感谢您的阅读和提前回答!Windows上的套接字 - 我错过了我程序中的某些东西吗?
我写了一个简单的C#程序,它通过套接字与第三方工具连接。只要我发送超过1024个字符的字符串,第三方软件就会报错。现在我试图找出这是我的套接字代码还是其他软件(EnergyPlus)的问题。
这只是几行代码,如果有人有建议,他们将不胜感激!
using System.IO;
using System.Net;
using System.Net.Sockets;
...
private int port = 1410;
private TcpListener listener;
private Stream s;
private StreamReader sr;
private StreamWriter sw;
private Socket soc;
...
这真正开始:
listener = new TcpListener(port);
listener.Start();
soc = listener.AcceptSocket();
// now, the other program connects
soc.SetSocketOption(SocketOptionLevel.Socket,
SocketOptionName.ReceiveTimeout, 10000);
s = new NetworkStream(soc);
sr = new StreamReader(s);
sw = new StreamWriter(s);
sw.AutoFlush = true; // enable automatic flushing
sw.WriteLine("more or less than 1024 characters");
...
这是我使用的代码。我忘了什么?我应该照顾的任何事情? 我很高兴有任何建议。
我从E +得到的错误是:
ExternalInterface: Socket communication received error value " 1" at time = 0.00 hours.
ExternalInterface: Flag from server " 0".
将有助于了解错误,这是抛出。虽然看起来不像是你的错。 – 2012-02-11 13:51:01
协议规范是否涵盖长字符串? – 2012-02-11 13:52:53
@MarcGravell:你的意思是WinPocket等的协议或EnergyPlus的协议?第二个在网上没有可访问的规范。但他们有我会联系的帮助台。但我想先确定我的代码。 – Teetrinker 2012-02-11 14:01:44