解决方案 »
- 求如何在C/S中使用客户端模拟多个连接,连接某个服务器上的webservice
- 有没有人用过VS进行远程调试C#程序
- 如何用oledb来查询DBF
- 关闭窗体时出现system.windows.forms 节中必须设置 jitDebugging 值。
- 怎样才能知道是那一程序改变了注册表那那一键值呢???
- 兄弟们,请问怎么在listview实现双击事件呢?
- 问个SQL语句
- 如何汉化DEV公司的print类的打印预览框中的菜单和按钮提示?
- 有关dev的grid问题
- 急问:选择文件夹的对话框 !
- C#做的一个小工具,安装后重启电脑打开第一次会报错,第二次都加载正常了不会报错
- 12306系统登陆接口的更改!!!求解答!!!
建议还是查MSDN恶补一下
你把它设置为阻塞,然后又使用异步方式,当然是不行的
设置为阻塞,用同步方式不行么?
你的代码是异步方式啊
还是系统的了解一下什么是同步方式,什么是异步方式吧
并不是你把socket设置为阻塞模式,它就是同步方式了
设置为阻塞,用同步方式不行么?
你的代码是异步方式啊
还是系统的了解一下什么是同步方式,什么是异步方式吧
并不是你把socket设置为阻塞模式,它就是同步方式了嗯,代码写的是异步方式,运行没问题的情况;然后“改成用同步方式来Receive()侦听接收”
我用socket.Receive()阻塞的同步方式来接收数据,没有任何数据?
不好意思重新又写了遍代码,同步方式又能侦听数据了
public partial class Form1 : Form
{
private Socket socket; public Form1()
{
InitializeComponent(); socket = new Socket(AddressFamily.InterNetwork,SocketType.Raw,ProtocolType.IP);
socket.Bind(new IPEndPoint(IPAddress.Parse("192.168.0.142"),0));
} private void Run()
{
byte[] data = new byte[4096];
int recv; while (true)
{
try
{
recv = socket.Receive(data,SocketFlags.None);
for (int i = 0; i < recv; i++)
{
ShowString(string.Format("{0:X2} ",data[i]));
}
ShowString("\r\n");
}
catch (SocketException ex)
{
MessageBox.Show("Receive Thread Exception:\r\n"+ex.Message.ToString());
break;
}
}
} private void Form1_Load(object sender, EventArgs e)
{
new Thread(Run).Start();
} private void ShowString(string msg)
{
if (richTextBox1.IsDisposed)
return;
richTextBox1.AppendText(msg);
}
}