C#中SOCKET编程AcceptSocket到这里就卡住了

try{Int32port=1111;IPAddresslocalAddr=IPAddress.Parse("192.168.0.103");tcpl=newTcpLis... try
{
Int32 port = 1111;
IPAddress localAddr = IPAddress.Parse("192.168.0.103");

tcpl = new TcpListener(localAddr,port);
tcpl.Start();
lblStatus.Text = "正在监听!";
while (true)
{
Socket QS=tcpl.AcceptSocket();
Byte[] Stream = new Byte[1024];
QS.Receive(Stream);
string message = System.Text.Encoding.UTF8.GetString(Stream);
richTextBox1.AppendText(message);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

以上是我的代码
为什么一到AcceptSocket就卡住了呢?
private void Send()
{
try
{
string msg = "<" + textBox4.Text + ">" + textBox3.Text;

TcpClient tcpc = new TcpClient(txtIP.Text, 2222);//客户端以这个IP地址和端口发送数据过去
NetworkStream tcpStream = tcpc.GetStream();

StreamWriter reqStreamW = new StreamWriter(tcpStream);

reqStreamW.Write(msg);

reqStreamW.Flush();//清理缓冲区

tcpStream.Close();//关闭

tcpc.Close();//客户端连接关闭

richTextBox1.AppendText(msg);

textBox2.Clear();
}
catch (Exception)
{
lblStatus.Text = "目标计算机拒绝连接请求!";
}
}

这里有办法把字符串msg的内容传递到另外一个机子上的文本框里面吗?
我这里是两个方法,,,都分别写在不同的程序里面的!
我的QQ11018230 感激不尽
展开
 我来答
百度网友dc91b32
推荐于2017-09-04 · TA获得超过5650个赞
知道大有可为答主
回答量:5653
采纳率:0%
帮助的人:0
展开全部
没有请求到达,当然要“卡”住,要不后面的代码跟谁通信?

后面的代码就是跟“请求者”通信,既然没有请求者,当然会在AcceptSocket这里“卡”住,术语叫程序阻塞,

socket同步通讯就是这个步骤,执行到AcceptSocket就会阻塞等待请求,直到有请求到达时,才执行后面的语句,并且处理这个请求,
侯湛恩Pf
2009-05-19 · TA获得超过407个赞
知道小有建树答主
回答量:195
采纳率:0%
帮助的人:0
展开全部
AcceptSocket是同步的,你可以用异步通讯的BeginAcceptSocket或者用多线程。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
heisetoufa
2009-05-19 · TA获得超过522个赞
知道小有建树答主
回答量:700
采纳率:0%
帮助的人:422万
展开全部
我有socket完整代码例子

http://heisetoufa.javaeye.com/blog/257070
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式