首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

asp.net与WinForm之间socket通信的有关问题

2012-12-22 
asp.net与WinForm之间socket通信的问题我想实现的功能是:在aspx页面点击发送按钮后,可以在winform界面的ri

asp.net与WinForm之间socket通信的问题
我想实现的功能是:在aspx页面点击发送按钮后,可以在winform界面的richtextbox中显示发送的消息,现在遇到的问题是点击aspx页面的连接后,可以连接成功,但点击发送按钮,服务器端却不显示发送的数据!!求解啊
winform服务器端代码:

private void button1_Click(object sender, EventArgs e)
        {
           
            IPAddress ip = Dns.GetHostEntry(Dns.GetHostName()).AddressList[0];
            //步骤1 创建网络端点IPEndPoint
            IPEndPoint myServer = new IPEndPoint(ip, 888);
            //步骤2 创建套接字Socket
            s1 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            //步骤3  套接字绑定到网络端点
            s1.Bind(myServer);
            label1.Text = ip+": 888  \n等待客户端连接......";

            th = new Thread(new ThreadStart(AA));
            th.Start();
        }

        void AA()
        {
            //步骤4  监听
            s1.Listen(5);
            //步骤5  接受客户端连接
            s2 = s1.Accept();
            //步骤6  判断连接状态
            if (s2.Connected)
            {
                label1.Text = "已有客户端连接!";

                //步骤7 循环接收客户端消息
                while (true)
                {
                    byte[] bb = new byte[1024];
                    int i = s2.Receive(bb);
                    string removeMsg = Encoding.Unicode.GetString(bb, 0, i);
                    label1.Text = removeMsg;
                                   
                    richTextBox1.AppendText(removeMsg + "++");


                    richTextBox1.ScrollToCaret();
                }
            }
            else
            {
                MessageBox.Show("FAIL");
            }

        }



客户端后台代码:
 Socket socket;
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        IPAddress ip = IPAddress.Parse("192.168.1.10");
        IPEndPoint removeServer = new IPEndPoint(ip, 888);
        socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        socket.Connect(removeServer);
        if (socket.Connected)
        {
            Label1.Text = "连接服务器成功!!";
        }
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        string sendStr = "消息来了";
        byte[] bs = Encoding.Unicode.GetBytes(sendStr); //转换编码
        try
        {
            socket.Send(bs, bs.Length, 0); //发送消息
        }
        catch { }
    }


[最优解释]
要用COM组件吧
[其他解释]
仅仅是连接上了,但是没有接收
[其他解释]
用WCF。
[其他解释]
虽然没用过,个人觉得webform与winform之间的通信总需要什么东西建立一下,像网页QQ与软件QQ一样。找找这种关系。
[其他解释]
求解答啊
[其他解释]
详细点啊
[其他解释]
没人能解答的详细点嘛
[其他解释]
顶起来
[其他解释]
虽然过时了。。还是回答一下,给看到这篇帖子的人一个思路

其实楼主的问题并不是Socket的问题,服务器可以接收到消息


[其他解释]
晕 一不小心点到提交了。。。还没说完。。。

AA方法是通过线程启动的,貌似无法在线程中更改winform界面上控件的属性,这属于跨线程访问。。。是个很严肃的问题,需要托管机制。。。。



所以,你看不到winform界面的变化

热点排行