用C#编写的 同步Socket通信接受数据不完整或接受不到,望知道的给与解答。
代码贴出来如下:
------------------------------------- Socket s = null;
IPEndPoint hostEndPoint;
IPAddress hostAddress = IPAddress.Parse(setting.FrontForIP);
int conPort = int.Parse(setting.FrontForPort);
hostEndPoint = new IPEndPoint(hostAddress, conPort); // Creates the Socket to send data over a TCP connection.
s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // Connect to the host using its IPEndPoint.
s.Connect(hostEndPoint); if (!s.Connected)
{
s = null;
} byte[] msg = Encoding.UTF8.GetBytes(xmlBW);
byte[] bytes = new byte[1024 * 10];
string resp = string.Empty;
try
{
// Blocks until send returns.
int byteCount = s.Send(msg, 0, msg.Length, SocketFlags.None);
// Get reply from the server.
byteCount = s.Receive(bytes, 0, bytes.Length, SocketFlags.None); int i = 0;
while (byteCount==0 && s.Available>0)
{
byteCount = s.Receive(bytes, 0, bytes.Length, SocketFlags.None);
if (i >= 4)
break;
i++;
} if (byteCount > 0)//表示有返回
{
resp = Encoding.UTF8.GetString(bytes);
}
s.Close();
return resp; }
代码贴出来如下:
------------------------------------- Socket s = null;
IPEndPoint hostEndPoint;
IPAddress hostAddress = IPAddress.Parse(setting.FrontForIP);
int conPort = int.Parse(setting.FrontForPort);
hostEndPoint = new IPEndPoint(hostAddress, conPort); // Creates the Socket to send data over a TCP connection.
s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // Connect to the host using its IPEndPoint.
s.Connect(hostEndPoint); if (!s.Connected)
{
s = null;
} byte[] msg = Encoding.UTF8.GetBytes(xmlBW);
byte[] bytes = new byte[1024 * 10];
string resp = string.Empty;
try
{
// Blocks until send returns.
int byteCount = s.Send(msg, 0, msg.Length, SocketFlags.None);
// Get reply from the server.
byteCount = s.Receive(bytes, 0, bytes.Length, SocketFlags.None); int i = 0;
while (byteCount==0 && s.Available>0)
{
byteCount = s.Receive(bytes, 0, bytes.Length, SocketFlags.None);
if (i >= 4)
break;
i++;
} if (byteCount > 0)//表示有返回
{
resp = Encoding.UTF8.GetString(bytes);
}
s.Close();
return resp; }
解决方案 »
- c#中调用外部dos命令,但是没有作用。
- 散分了,关注一下!!!!!!!!!!!!
- 接口有哪些好处?
- 删除数据库符合时间记录
- ibatis.net连接oracle数据库必须安装oracle的客户端吗?
- 高分 求对 钩子 和 qq 编程熟悉的朋友~~~~~~~
- 请问 [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]中的..\\是什么意思?
- 加载string类型数据,读取指定值
- 如何设置“显示”控制面板中的监视器颜色深度?
- 谁有DevExpress.XtraEditors(2.0.2.0)的注册码?
- c#,读取xml文件
- c#关于post接收页面的button_chick事件
前面加上 Thread.sheep(350); 程序就能很好的接受返回,求解!!!