网络通信编程见山之门

C#“hello world”程序

在这里插入图片描述
新建一个控制台应用程序
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsolTest
{
    class Program
    {
        private static int i;

        static void Main(string[] args)
        {
            for (i = 0; i < 50; i++)
            {
                Console.Write("hello cqjtu!重交物联2018级\n");
            }
            Console.ReadLine();
        }
    }
}

具体代码如上,通过循环的方式进行换行输出50行,需要说明的是本人在运行程序的过程中遇到了窗口界面一闪而过的问题,经过查询资料,通过在代码末端添加一句“Console.ReafLine()”(等待输入)来解决,让命令行窗口停留在输出完成后的界面
在这里插入图片描述
最终输出效果如图

C#编写From窗口,完成输入发送的功能

在这里插入图片描述
在vs2015中新建一个窗体应用程序项目
在这里插入图片描述
在右侧工具栏中找到TextBox和Button,按照个人喜好的样式布局
在这里插入图片描述
在上方的显示界面中将Enabled设置为False,以此无法在显示界面输入
在这里插入图片描述
将显示界面的ScrollToleft设置为Vertical,这样显示界面便得以滑动显示
在这里插入图片描述
在窗口属性的AcceptButton中将button1勾选上,以此让button1得以运作
在这里插入图片描述
最终界面的成品如图
在这里插入图片描述
在资源项button1_Click的方法中键入以下代码

try
            {
                /*
                 * 显示当前时间
                 */
                string str = "The current time: ";
                str += DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                textBox2.AppendText(str + Environment.NewLine);
                /*
                 * 做好连接准备
                 */
                int port = 2000;
                string host = "10.254.73.19";//填入需要送达的ip地址
                IPAddress ip = IPAddress.Parse(host);
                IPEndPoint ipe = new IPEndPoint(ip, port);//把ip和端口转化为IPEndPoint实例
                Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个Socket
                /*
                 * 开始连接
                 */
                str = "Connect to server...";
                textBox2.AppendText(str + Environment.NewLine);
                c.Connect(ipe);//连接到服务器
                /*
                 *发送消息 
                 */
                string sendStr = textBox2.Text;
                str = "The message content: " + sendStr;
                textBox2.AppendText(str + Environment.NewLine);
                byte[] bs = Encoding.UTF8.GetBytes(sendStr);
                str = "Send the message to the server...";
                textBox2.AppendText(str + Environment.NewLine);
                c.Send(bs, bs.Length, 0);//发送信息
                /*
                 * 接收服务器端的反馈信息
                 */
                string recvStr = "";
                byte[] recvBytes = new byte[1024];
                int bytes;
                bytes = c.Receive(recvBytes, recvBytes.Length, 0);//从服务器端接受返回信息          
                    recvStr += Encoding.UTF8.GetString(recvBytes, 0, bytes);
                    str = "The server feedback: " + recvStr;//显示服务器返回信息
                    textBox2.AppendText(str + Environment.NewLine);
                /*
                 * 关闭socket
                 */
                c.Close();
            }
            catch (ArgumentNullException f)
            {
                string str = "ArgumentNullException: " + f.ToString();
                textBox2.AppendText(str + Environment.NewLine);
            }
            catch (SocketException f)
            {
                string str = "ArgumentNullException: " + f.ToString();
                textBox2.AppendText(str + Environment.NewLine);
            }
            textBox2.AppendText("" + Environment.NewLine);
            textBox1.Text = "";

在这里插入图片描述
然后运行程序,简单的网络通信便可通过

WireShrak抓包分析

在这里插入图片描述
这里是通过wireshrak所抓取到了一个tcp协议的数据包

引用

抓包分析与简单网络通信引用自如下链接
https://blog.csdn.net/tyro_00/article/details/109400757
控制台创建C#程序引用自
https://blog.csdn.net/tyro_00/article/details/109400757
以上!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值