• C#TCPClient应用-一个简单的消息发送和接收


    TcpSend窗口用于发送消息,另外写一个用于接收消息的应用程序,消息接受到以后,必须要关闭接收消息的窗口,才能在接收新的消息,不知道怎么能解决这个问题。

    源代码:

    发送消息的窗口代码

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Net;
    using System.Net.Sockets;
    using System.IO;


    namespace TCPSocket
    {
        public partial class FrmTcpSend : Form
        {
            public FrmTcpSend()
            {
                InitializeComponent();
            }

            private void buttonSendFile_Click(object sender, EventArgs e)
            {
               // TcpClient tcpClient = new TcpClient(textBoxHostName.Text, Int32.Parse(textBoxPort.Text));
                TcpClient tcpClient = new TcpClient();
                tcpClient.Connect(IPAddress.Parse(textBoxHostName.Text), Int32.Parse(textBoxPort.Text));

                NetworkStream ns = tcpClient.GetStream();

                FileStream fs = File.Open("..\..\FrmTcpSend.cs", FileMode.Open);

                int data = fs.ReadByte();

                while (data != -1)
                {
                    ns.WriteByte((byte)data);
                    data = fs.ReadByte();
                }

                fs.Close();
                ns.Close();
                tcpClient.Close();

            }

            private void buttonSendMessage_Click(object sender, EventArgs e)
            {
                TcpClient tcpClient = new TcpClient();
                tcpClient.Connect(IPAddress.Parse(textBoxHostName.Text), Int32.Parse(textBoxPort.Text));

                NetworkStream ns = tcpClient.GetStream();


                if (ns.CanWrite)
                {
                    Byte[] sendBytes = Encoding.UTF8.GetBytes(textBoxMessage.Text);
                    ns.Write(sendBytes, 0, sendBytes.Length);
                }
                else
                {
                    MessageBox.Show("不能写入数据流", "终止", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                    //Console.WriteLine("You cannot write data to this stream.");
                    tcpClient.Close();

                    // Closing the tcpClient instance does not close the network stream.
                    ns.Close();
                    return;
                }


                ns.Close();
                tcpClient.Close();

            }
        }
    }

  • 相关阅读:
    设计模式学习总结
    WCF一个Host实现多契约服务
    通过服务端监控结果,说说WCF的并发处理
    分词中常用算法比较与设想
    SQL Server 2008建立分区表(Table Partition)
    .NET 4中Entity Framework 新增查询与优化
    Web Service 接口大量数据传输解决方案
    面向对象的设计原则与目标[总结篇]
    说说ADO.NET EF 中的实体修改方法
    数据库大型应用解决方案总结
  • 原文地址:https://www.cnblogs.com/adjk/p/4212358.html
Copyright © 2020-2023  润新知