CSDN-CSDN社区-.NET技术-C#

收藏 刚接触socket。很简单的一个问题求助[问题点数:50,结帖人:king19840811]

  • king19840811
  • (工作中。。。)
  • 等 级:
  • 结帖率:
楼主发表于:2009-01-10 00:44:09
  private const int portNum = 13;
        private void Form1_Load(object sender, EventArgs e)
        {
            bool done = false;
            IPAddress local = IPAddress.Parse("127.0.0.1");
            TcpListener listener = new TcpListener(local,portNum);
            listener.Start();
            while (!done)
            {
                textBox1.Text += "waiting for connection...";
                TcpClient client = listener.AcceptTcpClient();//在这一行就不动了。界面显示不了。也不抛出异常

                textBox1.Text += "Connection accepted\r\n";
                NetworkStream ns= client.GetStream();
                byte[] byteTime = Encoding.ASCII.GetBytes(DateTime.Now.ToString());

                try
                {
                    ns.Write(byteTime, 0, byteTime.Length);
                    ns.Close();
                    client.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
            listener.Stop();
        }
回复次数:9
#1楼 得分:0回复于:2009-01-10 00:46:23
运行客户端出现由于目标计算机积极拒绝无法连接。我已经把所有的防火墙都关了。。已经打开telnet服务
#2楼 得分:0回复于:2009-01-10 00:54:28
在telnet下用 open 127.0.0.1 13测试了下端口13发现连接失败。有朋友遇到这个情况没有
注:我用的是vista
#3楼 得分:0回复于:2009-01-10 01:19:05
#4楼 得分:10回复于:2009-01-10 08:21:07
TcpClient client = listener.AcceptTcpClient();//在这一行就不动了。界面显示不了。也不抛出异常
=================================================================

因为到这句的时候系统在等待连接接入,线程被阻塞了,一般的SOCKET程序都是多线程的,在子线程中接受连接,收发数据
#5楼 得分:0回复于:2009-01-10 08:27:02
运行客户端出现由于目标计算机积极拒绝无法连接。
================================================

你的客户端和服务器在同一台机器上吗?如果不是

IPAddress local = IPAddress.Parse("127.0.0.1");
改为
IPAddress local = IPAddress.Parse("0.0.0.0");
试一下
#6楼 得分:0回复于:2009-01-10 08:28:57

我试了一下你的程序,用telnet命令是可以连接成功的,你最好再检查一下本机的网络设置和防火墙。我用03系统
#7楼 得分:40回复于:2009-01-10 08:37:59
  • sxmonsy用户头像
  • sxmonsy
  • (吉尔赛那斯)
  • 等 级:
#8楼 得分:0回复于:2009-01-10 08:40:32
UP下
#9楼 得分:0回复于:2009-01-10 08:53:42
补上Invoke显示的代码:
C# code
delegate void addtxt(string str); private void AddTxt(string str) { if (this.InvokeRequired) { this.Invoke(new addtxt(AddTxt), str); } else { textBox1.Text += str; } } .... //textBox1.Text += "waiting for connection..."; 界面要用Invoke //修改为-> AddTxt("waiting for connection...");

相关问题
刚接触wap,要利用socket编写wap传输协议,不知从何着手移动平台/ 开发 ...
大侠们好,问个socket的问题,希望大家热心帮助我
关于socket编程,刚接触c#的网络编程,请问个基本问题.NET技术/ C# ...
一个SOCKET编程的菜鸟问题,请高手指点(急) VC/MFC / 基础类- CSDN ...
socket的一点小问题,大家帮帮忙Delphi / VCL组件开发及应用- CSDN社区 ...
刚接触网络编程,简单的问题,希望各位帮忙!! VC/MFC / 网络编程 ...