考试习题

  1. 对指定函数的进行线程调用的两种方式。
  2. 获取指定机器或域名的IP地址。
  3. 根据指定IP和端口号生成传输层地址。
IPEndPoint ipend=new IPEndPoint(IPAddress.Parse("127.0.0.1"),55551)
  1. 设置线程为守护线程或用户线程。
thread.IsBackground = true;
  1. 测试指定地址网站是否在线。
//判断210.35.96.20是否在线
Ping p = new Ping();
PingReply pr = p.Send(IPAddress.Parse("210.35.96.20"));if (pr.Status == IPStatus.Success)Console.WriteLine("online");
elseConsole.WriteLine(pr.Status);
  1. 获取Socket对象的输入或输出字节流 。
IPEndPoint srvEnd =new IPEndPoint(IPAddress.Loopback,55551);TcpListener tcpl = new TcpListener(srvEnd);tcpl.Start(10);TcpClient tcpc = tcpl.AcceptTcpClient();NetworkStream ns = tcpc.GetStream();StreamReader sr = new StreamReader(ns,Encoding.UTF8);StreamWriter sw = new StreamWriter(ns, Encoding.UTF8);
  1. 获取某字符串的指定编码的字节数组。
Encoding.UTF8.GetButes("这个是字符串")
8.      将指定编码的字节数组转化成字符串。
byte[] buff=Encoding.UTF8.GetButes("这个是字符串");
Encoding.UTF8.GetString(buff);
  1. 将特定文字存入磁盘文件或从磁盘文件读取指定内容。
// 将字符串"例子"保存到d盘f.txt中。FileStream fs = new FileStream("d:\\f.txt", FileMode.Create, FileAccess.Write);StreamWriter sw = new StreamWriter(fs,Encoding.UTF8);sw.Write("例子");sw.Flush();sw.Close();
// 读取d盘f.txt中的所有内容。FileStream fs = new FileStream("d:\\f.txt", FileMode.Open, FileAccess.Read);StreamReader sr = new StreamReader(fs);Console.WriteLine(sr.ReadToEnd());  // 全部读出sr.Close();
  1.  本课程涉及到哪些类,这些类的基本功能是什么?
    
IPEndPoint
IPAddress
EndPoint
Socket
TcpListener
TcpClient
UdpClient
FileStream
Thread
  1. 面向连接的套接字编程步骤及过程。
    
  2. 无连接的套接字编程步骤及过程。
    
  3. 常用多线程通信程序设计框架。(死循环、阻塞函数)
    
Thread th=new Thread();
th.Start();

读程序

 //启动记事本 ,并打开1.txtProcess p  = new Process();p.StartInfo.FileName ="notepad.exe" ;p.StartInfo.Arguments = "d:\\1.txt";p.Start();//正常关闭进程p.CloseMainWindow();//如果进程无响应,强行关闭进程。p.Kill();  //显示当前系统中所有运行的进程
Process[] p = Process.GetProcesses();
foreach (Process temp in p) {Console.WriteLine(  temp.Id.ToString() + ":" + temp.ProcessName.ToString() +":" + temp.MainModule.FileName.ToString() );
}//函数void testTh();
//启动线程执行testTh();
Thread th= new Thread(testTh);
th.Start();//函数void testTh1(Object obj);
//启动线程执行testTh();
Thread th= new Thread(testTh1);th.isBackGround =true ;th.Start(obj);//构建IP地址(网络层地址)
IPAddress ip = IPAddress.Parse("192.168.0.2");//IPAddress.Any;
//IPAddress.Loopback;//构建IPEndPoint地址(传输层地址,socket地址)
IPEndPoint ip = new  IPEndPoint(ip,55551);//指定IP地址,任意端口号
IPEndPoint ipe = new IPEndPoint(ip, 0);//任意IP地址,任意端口号
IPEndPoint ipe1 = new IPEndPoint(IPAddress.Any, 0);//获取本机所有可用IPv4地址并打印到屏幕IPAddress[] localip = Dns.GetHostAddresses("");foreach(var temp in localip){//获取的地址为IPv4if (temp.AddressFamily == AddressFamily.InterNetwork) {Console.WriteLine(temp.ToString());}  }//获取本机所有可用IP地址并打印到屏幕IPAddress[] localip = Dns.GetHostAddresses("");foreach(var temp in localip){Console.WriteLine(temp.ToString());}  //获取本机所有可用网卡信息并打印到屏幕
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
foreach  (NetworkInterface nic in nics) {Console.WriteLine(nic.Id);Console.WriteLine(nic.Name);Console.WriteLine(nic.Speed);Console.WriteLine(nic.GetPhysicalAddress());Console.WriteLine("--------------------------------");
}//判断210.35.96.20是否在线
Ping p = new Ping();
PingReply pr = p.Send(IPAddress.Parse("210.35.96.20"));if (pr.Status == IPStatus.Success)Console.WriteLine("online");
elseConsole.WriteLine(pr.Status); //获取本机所有可用编码信息并打印到屏幕EncodingInfo[]  codes =  Encoding.GetEncodings();foreach (var code in codes) {Console.WriteLine(code.Name);Console.WriteLine(code.DisplayName);Console.WriteLine(code.CodePage);}              //将字符串"例子"转化成UTF8的字节流
Encoding utf8 = Encoding.GetEncoding("utf-8");
byte[] snd = utf8.GetBytes("例子");// 将包含UTF8的字节数组中指定范围的字节 转化 成为 字符串。
Encoding utf8 = Encoding.GetEncoding("utf-8");
string str = utf8..GetString(snd, 0, snd.Length);//将字符串"例子"转化成GB2312的字节流
Encoding gb = Encoding.GetEncoding("GB2312");
byte[] snd = gb.GetBytes("例子");// 将包含UTF8的字节数组中指定范围的字节 转化 成为 字符串。 Encoding gb = Encoding.GetEncoding("GB2312");string str = gb.GetString(snd, 0, snd.Length);// 将字符串"例子"保存到d盘f.txt中。FileStream fs = new FileStream("d:\\f.txt", FileMode.Create, FileAccess.Write);StreamWriter sw = new StreamWriter(fs,Encoding.UTF8);sw.Write("例子");sw.Flush();sw.Close();// 读取d盘f.txt中的所有内容。FileStream fs = new FileStream("d:\\f.txt", FileMode.Open, FileAccess.Read);StreamReader sr = new StreamReader(fs);Console.WriteLine(sr.ReadToEnd());  // 全部读出sr.Close();// 读取d盘f.txt中的第一行内容。FileStream fs = new FileStream("d:\\f.txt", FileMode.Open, FileAccess.Read);StreamReader sr = new StreamReader(fs);Console.WriteLine(sr.ReadLine());  // 读第一行文字sr.Close();//通过socket获取网络流NetworkStream myNetworkStream = new NetworkStream(mySocket);//通过tcpClient获取网络流TcpClient tcpClient=new TcpClient();tcpClient.Connect("www.abcd.com", 51888);NetworkStream networkStream = client.GetStream();

Tcp socket通信

面向连接的套接字流程图

服务端

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Net;namespace SocketS
{class Program{static void Main(string[] args){//1.Socket serverSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);//2.IPEndPoint iPEnd = new IPEndPoint(IPAddress.Parse("127.0.0.1"),55551);//3.serverSocket.Bind(iPEnd);//4.serverSocket.Listen(10);//5.Socket clientSocket= serverSocket.Accept();//6.byte[] receive = new Byte[1024]; clientSocket.Receive(receive);Console.WriteLine("来自客户的消息:");Console.WriteLine(Encoding.UTF8.GetString(receive));clientSocket.Send(Encoding.UTF8.GetBytes("你好,我是服务器"));clientSocket.Close();serverSocket.Close();}}
}

客户端

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Net;namespace Socketc
{class Program{static void Main(string[] args){//1.Socket clientSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);//2.IPEndPoint iPEnd = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 55551);//3.clientSocket.Connect(iPEnd);//4.clientSocket.Send(Encoding.UTF8.GetBytes("hello,服务器,我是客户"));//5.byte[] receive = new Byte[1024];clientSocket.Receive(receive);Console.WriteLine("来自服务器的消息:");Console.WriteLine(Encoding.UTF8.GetString(receive));clientSocket.Close();}}
}

Tcp 类库通信

服务器

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;using System.Net;
using System.Net.Sockets;
using System.IO;namespace tcpserverEx
{class Program{static void Main(string[] args){IPEndPoint srvEnd =new IPEndPoint(IPAddress.Loopback,55551);TcpListener tcpl = new TcpListener(srvEnd);tcpl.Start(10);TcpClient tcpc = tcpl.AcceptTcpClient();NetworkStream ns = tcpc.GetStream();StreamReader sr = new StreamReader(ns,Encoding.UTF8);StreamWriter sw = new StreamWriter(ns, Encoding.UTF8);Console.WriteLine(sr.ReadLine());sw.WriteLine("hello,client!!");sw.Flush();Console.Read();ns.Close();tcpc.Close();tcpl.Stop();}}
}

客户端

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;using System.Net;
using System.Net.Sockets;
using System.IO;namespace tcpclientEx
{class Program{static void Main(string[] args){TcpClient tcpc = new TcpClient();IPEndPoint srvEnd =new IPEndPoint(IPAddress.Loopback,55551);tcpc.Connect(srvEnd);NetworkStream ns = tcpc.GetStream();StreamReader sr = new StreamReader(ns, Encoding.UTF8);StreamWriter sw = new StreamWriter(ns, Encoding.UTF8);sw.WriteLine("hello,zs!!");sw.Flush();Console.WriteLine(sr.ReadLine());Console.Read();ns.Close();tcpc.Close();}}
}

Udp socket通信

面向无连接的套接字流程图

客户端和服务器一样

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Net;namespace ConsoleApplication1
{class Program{static void Main(string[] args){Socket s1 = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Ucp);s1.Bind(new IPEndPoint(IPAddress.Loopback, 8090));byte[] buffer = new byte[1000];EndPoint GuestEP = new IPEndPoint(IPAddress.Any, 0);int len = s1.ReceiveFrom(buffer, ref GuestEP);Console.WriteLine(Encoding.UTF8.GetString(buffer, 0, len));Console.ReadLine();s1.Close();}}
}

Udp类库通信

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;using System.Net;
using System.Net.Sockets;
using System.IO;namespace udpclient2Ex
{class Program{static void Main(string[] args){UdpClient udp1 = new UdpClient(new IPEndPoint(IPAddress.Parse("192.168.8.8"), 55552));IPEndPoint remote = new IPEndPoint(IPAddress.Any, 0);byte[] buffer = Encoding.UTF8.GetBytes("例子 to 55551");udp1.Send(buffer, buffer.Length, new IPEndPoint(IPAddress.Parse("192.168.8.8"), 55551));//单播192.168.8.8//广播192.168.8.155//组播接收端添加一句//udp1.JoinMulticastGroup(IPAddress.Parse("224.10.10.10"));byte[] recBuffer = udp1.Receive(ref remote);Console.WriteLine(Encoding.UTF8.GetString(recBuffer));Console.Read();udp1.Close();}}
}

C#网络编程复习资料相关推荐

  1. 文件服务器 工作站 通信媒体,【2013年自考“网络操作系统”复习资料(22)】- 环球网校...

    [摘要]2013年自考"网络操作系统"复习资料 1.为构建一个局域网,在硬件上和软件上应具备哪些条件? 硬件:①网卡和媒体②网络工作站③网络服务器④网络连接器. 软件:①服务器操作 ...

  2. 计算机软考初级工程资料,计算机软考网络工程师复习资料及习题(一)

    1. 若是serial0 is up, line protocol is up表示该端口工作正常. 2.若是serial 0 is down, line protocol is down表示路由器到本 ...

  3. 软考|网络工程师复习资料、附历年真题、详细学习笔记,考试重点,看过的人都能过!

    本人于2018年上半年通过网络工程师,手中有2018年最新视频资料,历年真题,个人笔记,详细内容都会通过CSDN发布 对于那种直接贴邮箱要资料的,只想说可否尊重一下我们,我们有些资料也是付费购买的,然 ...

  4. TCP/IP网络编程复习(上)

    第一章 理解网络编程和套接字 #include<sys/socket.h> int socket(int domain, int type , int protocol); //socke ...

  5. Linux网络编程复习笔记

    理论知识点 TCP协议的三次握手的触发API connect : 第一次握手信息 第二次,第三次都是被动处理,无需调用接口 accept不参与三次握手,取出三次握手成功的描述符 socket描述符的合 ...

  6. java飞鸽传书_feige 飞鸽传书源代码java 实现不错的联系网络编程的资料飞鸽传书的GUI(java实现) - 下载 - 搜珍网...

    我的飞鸽传书/FileFilter.java 我的飞鸽传书/FileNameExtensionFilter.java 我的飞鸽传书/飞鸽传书/classes/feige/About.class 我的飞 ...

  7. 嵌入式Linux驱动编程复习资料

    一.选择题 Linux使用mknod命令创建设备节点 Linux使用mkdir命令创建目录文件 Linux使用mkfifo命令创建管道文件 Linux设备驱动主要分为:字符设备.块设备.网络设备 Li ...

  8. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

  9. 计算机网络教育计算机统考,网络教育统考计算机复习资料 (4).doc

    网络教育统考计算机复习资料 (4).doc (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 7.9 积分 电子表格单选题:1.Excel 2010是 ...

最新文章

  1. TextField输入结束后让键盘消失的两个技巧
  2. 没有找到borlandmm.dll 报错的解决方法
  3. 【收藏】Geomesa(三)图层的裁剪分析
  4. springSecurity源码分析——DelegatingFilterProxy类的作用
  5. python网络编程2-黏包问题
  6. ubuntu16.04下安装mysql详细步骤
  7. c语言 给结构体赋初值,c/c++ 结构体赋初值的小技巧
  8. opencv 解析yuv_通过OpenCV读取并显示YUV视频文件
  9. PHP数组和Json之间的转换
  10. Linux小技巧:生成随机字符串
  11. python编辑程序用print函数输出中国加油武汉加油_python练习1之print函数
  12. SQL2008 SQLExpress数据库存满处理
  13. 移动硬盘计算机无图标,移动硬盘不显示图标的处理方法
  14. 小猪短租网一个网页上的单个价格
  15. Map应用:电话聊天狂人
  16. 浙大玉泉校区-武林门民航售票处-萧山机场
  17. 两部苹果手机同步照片_苹果手机误删照片怎么恢复?
  18. 2021程序员笔记本电脑推荐
  19. 大学生集体户口面临孩子落户困境
  20. CDMA CDMA2000 WCDMA TD-SCDMA的区别

热门文章

  1. 【C语言小游戏】——老鼠走迷宫
  2. 我是技术总监,我出来求职,竟然找不到工作!
  3. 软件环境、硬件环境、开发工具
  4. 加载elementor时出现问题_禁止elementor插件加载谷歌字体
  5. 英国筒灯耐火报告的天花板结构I-joist 跟Web- Joist有什么区别?
  6. centos7.6安装Funwave-TVD 3.3全过程
  7. 视力检测app开发一键生成
  8. 电脑公司 ghost win7_SP1 X64 特别版 2015.05
  9. 江南大学数字媒体技术大三上作业整理——顾清宇
  10. 【云周刊】第154期:朋友圈刷屏的“区块链技术革命”,究竟还面临怎样的困难?