真奇怪!!这到底是为什么呢? 我的服务端向客户端发送8个数据,如果你直接运行服务端向客户端发送数据的话,服务端只会发送2个数据,但是如果在发送代码里下断的话,那么它就能全部发送,一个不漏,为什么呢???? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 release模式优化代码导致丢东西的么? private void button4_Click(object sender, EventArgs e) { if (textBox1.Text != "" || textBox2.Text != "" || textBox3.Text != "" || textBox4.Text != "" || textBox5.Text != "" || textBox6.Text != "" || textBox7.Text != "" || textBox8.Text != "") { if (_transmit_tb[textBox1.Text.ToString().Trim()] != null) { Socket clientSkt = _transmit_tb[textBox1.Text.ToString().Trim()] as Socket; try { strFLSMC = string.Format("FLSMC--{0}", textBox2.Text.ToString().Trim()).PadRight(50, '^'); clientSkt.Send(Encoding.Unicode.GetBytes(strFLSMC)); strFZKQD = string.Format("FZKQD--{0}", textBox3.Text.ToString().Trim()).PadRight(50, '^'); clientSkt.Send(Encoding.Unicode.GetBytes(strFZKQD)); strFPKOU = string.Format("FPKOU--{0}", textBox4.Text.ToString().Trim()).PadRight(50, '^'); clientSkt.Send(Encoding.Unicode.GetBytes(strFPKOU)); strFPLVE = string.Format("FPLVE--{0}", textBox5.Text.ToString().Trim()).PadRight(50, '^'); clientSkt.Send(Encoding.Unicode.GetBytes(strFPLVE)); strFPKLX = string.Format("FPKLX--{0}", textBox6.Text.ToString().Trim()).PadRight(50, '^'); clientSkt.Send(Encoding.Unicode.GetBytes(strFPKLX)); strFTZFD = string.Format("FTZFD--{0}", textBox7.Text.ToString().Trim()).PadRight(50, '^'); clientSkt.Send(Encoding.Unicode.GetBytes(strFTZFD)); strFMONE = string.Format("FMONE--{0}", textBox8.Text.ToString().Trim()).PadRight(50, '^'); clientSkt.Send(Encoding.Unicode.GetBytes(strFMONE)); strFTIME = string.Format("FTIME--{0}", DateTime.Now).PadRight(50, '^'); clientSkt.Send(Encoding.Unicode.GetBytes(strFTIME)); } catch (SocketException) { MessageBox.Show("发送出现错误!"); } } else { MessageBox.Show("你要发送的客户端不存在"); } } else { MessageBox.Show("请输入完整信息!"); } } 与时间有关连续发送SOCKET必须检测端口是否在READY状态,否则发送太快,后面的几个包可能被丢弃只是猜的。 OK,就是时间问题,把每次发送的中间加上Thread.Sleep(200);就好了!谢谢大家帮我 输入字符串格式不正确----新手问题 急求关于VS 引用的问题 asp.net c# 两组字符串比较后,怎么剩下不匹配的字符. 新手提问……Form2.cs里的RichTextBox.Text,怎样在Form1.cs读取 求例:用c#更新,插入access 计算文件的MD5值 从数据库怎么读取图片信息啊(大家都进来看啊,分少会加的) 一个关于定时器的疑惑? TextBox 和 Password Field 如何去除字符串中的空格? 自制窗口接不到键盘消息 数组元如何相加啊?
private void button4_Click(object sender, EventArgs e)
{
if (textBox1.Text != "" || textBox2.Text != "" || textBox3.Text != "" || textBox4.Text != "" || textBox5.Text != "" || textBox6.Text != "" || textBox7.Text != "" || textBox8.Text != "")
{
if (_transmit_tb[textBox1.Text.ToString().Trim()] != null)
{
Socket clientSkt = _transmit_tb[textBox1.Text.ToString().Trim()] as Socket;
try
{
strFLSMC = string.Format("FLSMC--{0}", textBox2.Text.ToString().Trim()).PadRight(50, '^');
clientSkt.Send(Encoding.Unicode.GetBytes(strFLSMC)); strFZKQD = string.Format("FZKQD--{0}", textBox3.Text.ToString().Trim()).PadRight(50, '^');
clientSkt.Send(Encoding.Unicode.GetBytes(strFZKQD)); strFPKOU = string.Format("FPKOU--{0}", textBox4.Text.ToString().Trim()).PadRight(50, '^');
clientSkt.Send(Encoding.Unicode.GetBytes(strFPKOU)); strFPLVE = string.Format("FPLVE--{0}", textBox5.Text.ToString().Trim()).PadRight(50, '^');
clientSkt.Send(Encoding.Unicode.GetBytes(strFPLVE)); strFPKLX = string.Format("FPKLX--{0}", textBox6.Text.ToString().Trim()).PadRight(50, '^');
clientSkt.Send(Encoding.Unicode.GetBytes(strFPKLX)); strFTZFD = string.Format("FTZFD--{0}", textBox7.Text.ToString().Trim()).PadRight(50, '^');
clientSkt.Send(Encoding.Unicode.GetBytes(strFTZFD)); strFMONE = string.Format("FMONE--{0}", textBox8.Text.ToString().Trim()).PadRight(50, '^');
clientSkt.Send(Encoding.Unicode.GetBytes(strFMONE)); strFTIME = string.Format("FTIME--{0}", DateTime.Now).PadRight(50, '^');
clientSkt.Send(Encoding.Unicode.GetBytes(strFTIME)); }
catch (SocketException)
{
MessageBox.Show("发送出现错误!");
}
}
else
{
MessageBox.Show("你要发送的客户端不存在");
} }
else
{
MessageBox.Show("请输入完整信息!");
}
}
连续发送SOCKET必须检测端口是否在READY状态,否则发送太快,后面的几个包可能被丢弃只是猜的。