C#i编程和网络编程入门

要求:

①用C#编写一个命令行/控制台hello world程序,实现如下功能:在屏幕上连续输出50行“hello cqjtu!重交物联2018级”;同时打开一个网络UDP 套接字,向室友电脑或树莓派发送这50行消息。
②用VS2015/2017 的C#编写一个简单的Form窗口程序,有一个文本框 textEdit和一个发送按钮button,运行程序后,可以在文本框里输入文字,如“hello cqjtu!重交物联2018级”,点击button,将这些文字发送给室友电脑或树莓派,采用UDP套接字;
③安装wireshark 抓包软件,抓取上述程序发送的网络包,对数据帧结构进行分析。按惯例要求,提交作业博客地址到学习通,完整资料提交邮件

用C#编写一个命令行实现窗口hello world程序

打开vs2017建立C#项目在这里插入图片描述

再建立一个C#控制台程序

在这里插入图片描述

在跳出来的界面输入以下代码编写程序

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

namespace ConsoleApp1
{
    class example
    {
        static void Main(string[] args)
        {
            Console.WriteLine("hello world");
        }
    }
}

如图在这里插入图片描述

点击调试-开始执行(不调试)

在这里插入图片描述

执行结果如下

在这里插入图片描述

服务端程序

在这里插入代码using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;

namespace UDP
{
    class Program
    {
        static void Main(string[] args)
        {
            int recv;
            byte[] data = new byte[1024];

            //得到本机IP,设置TCP端口号         
            IPEndPoint ip = new IPEndPoint(IPAddress.Any, 8000);
            Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

            //绑定网络地址
            server.Bind(ip);

            Console.WriteLine("这是客户端, 主机名为: {0}", Dns.GetHostName());

            //等待客户机连接
            Console.WriteLine("等待客户端发送数据...");

            //得到客户机IP
            IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
            EndPoint Remote = (EndPoint)(sender);
            recv = server.ReceiveFrom(data, ref Remote);
            Console.WriteLine("消息来自于: {0}: ", Remote.ToString());
            Console.WriteLine(Encoding.Default.GetString(data, 0, recv));

            //客户机连接成功后,发送信息
            string welcome = "连接成功 ";

            //字符串与字节数组相互转换
            data = Encoding.Default.GetBytes(welcome);

            //发送信息 
            server.SendTo(data, Remote);



            while (true)
            {
                data = new byte[1024];
                //发送接收信息
                //从客户机接受消息
                recv = server.ReceiveFrom(data, ref Remote);
                //将字节流信息转换为字符串
                string Data = Encoding.Default.GetString(data, 0, recv);
                //将字符串输出到屏幕上
                Console.WriteLine(Data);
                // Console.WriteLine(Encoding.Default.GetString(data, 0, recv));
                /*
                //定义字符串input
                string input;
                //读取屏幕上的字符串
                input = Console.ReadLine();
                if (input == "exit")
                    break;
                //将input发送至客户机
                server.SendTo(Encoding.Default.GetBytes(input),Remote);*/
            }
            server.Close();
        }

    }
}

片`

结果

在这里插入图片描述

使用wireshark抓包

发送时在这里插入图片描述

接受时
在这里插入图片描述

实现窗口helloworld

创建新项目

在这里插入图片描述

客户端程序在这里插入图片描述

编写以下代码

using System;
using System.Windows.Forms;

namespace HelloworldWindow
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
        	//通过点击实际完成数据的添加显示
            showMsg();
        }
        void showMsg()
        {
        	//向文本控件中添加HelloWorld
            textBox1.AppendText("Hello World!" + "\t\n");
        }
    }
}

结果在这里插入图片描述

服务端在这里插入图片描述

wireshark抓包

在这里插入图片描述
这是我抓到的包,源地址是192.168.43.205,目的地址是192.168.43.165,使用协议为UDP,端口号为8000,长度为11字节,数据内容为hello world.
服务端
在这里插入图片描述
这是舍友抓到的包,源地址就是192.168.43.205,目的地址为192.168.43.165.内容为hello world,11字节,端口号为11,使用协议为UDP。

参考

UDP介绍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值