zoukankan      html  css  js  c++  java
  • 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();

            }
        }
    }

  • 相关阅读:
    Elasticsearch常用插件集合(转)
    istio 安装与bookinfo示例运行(转)
    kubernetes发布tomcat服务,通过deployment,service布署(转)
    记一次ceph集群的严重故障 (转)
    Linux centos 7 安装NFS服务
    Centos7下使用Ceph-deploy快速部署Ceph分布式存储-操作记录(转)
    docker 安装 jmeter
    idea 2018.1破解激活方法,有效期至2099年
    MySQL和Oracle的区别
    SpringCloud面试题
  • 原文地址:https://www.cnblogs.com/adjk/p/4212358.html
Copyright © 2011-2022 走看看