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();

            }
        }
    }

  • 相关阅读:
    《自动化测试工程师进阶之路》系列课程
    开发测试工程师系列课程
    AQA新加入手机自动化测试版块
    持续集成体系搭建服务
    开源自动化测试White与UIA
    TIB自动化测试快讯 自动化测试空间一周精选(201119)
    周六广州软件测试俱乐部圆桌会议3期
    Java白盒测试训练
    TIB自动化测试快讯 自动化测试空间一周精选(2012220)
    TIB自动化测试快讯 自动化测试空间一周精选(201226)
  • 原文地址:https://www.cnblogs.com/adjk/p/4212358.html
Copyright © 2011-2022 走看看