Socket网络编程学习笔记

Posted 春天里的麦子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Socket网络编程学习笔记相关的知识,希望对你有一定的参考价值。

1 服务器 发送消息和接受消息的代码

namespace Socket_编程_tcp协议_服务端
{
class Program
{
static void Main(string[] args)
{
//1.创建服务端socket类
Socket tcpServer = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
//2.绑定IP和端口号 192.168.155.1
IPAddress ipaddress = new IPAddress(new byte[]{192,168,155,1});
EndPoint point = new IPEndPoint(ipaddress,7788); //ipendpoint是对ip+端口号做了一次封装的类
tcpServer.Bind(point); //这是向操作系统申请一个可用的ip跟端口号 用来做通信
//3.开始监听等待客户端做连接
tcpServer.Listen(100); //参数是最大连接数
Console.WriteLine("开始监听");
Socket clientSocket = tcpServer.Accept(); //暂停当前线程,直到有一个客户端连接过来,之后进行下面的代码
//使用返回的socket跟客户端做通信
Console.WriteLine("客户端连接过来了");

string message = "hello欢迎连接";
byte[] data = Encoding.UTF8.GetBytes(message);//对字符串做二进制的编码得到一个字符串的字节数组
clientSocket.Send(data);
Console.WriteLine("向客户端发送了一条数据");
//接受消息
byte[] data2 = new byte[1024]; //创建一个字节数组容器来接受客户端发送过来的消息
int length = clientSocket.Receive(data2);
string message2 = Encoding.UTF8.GetString(data2, 0, length);
Console.WriteLine("接受到了一条消息"+message2);
Console.ReadKey();
}
}
}

 

2:客户端向服务端发送消息和接受消息代码

 

namespace Socket编程_tcp协议_客户端
{
class Program
{
static void Main(string[] args)
{
//1.创建socket
Socket tcpClient = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
//2.发起建立连接的请求
IPAddress ipAddress = new IPAddress(new byte[] {192, 168, 155, 1 }); //用来存储ip地址
EndPoint point = new IPEndPoint(ipAddress,7788); //用来指用来指定IP地址和端口数据
tcpClient.Connect(point); //与主机建立连接 通过ip和端口号
//
byte[] data = new byte[1024]; //定义一个byte类型的数组

int length = tcpClient.Receive(data); //接受数据 byte类型的数组,这个data是用来接受数据的
// length 表示接受了多少字节的数据
string message = Encoding.UTF8.GetString(data,0,length);
Console.WriteLine(message);

//1、服务器端发送消息

string message2 = Console.ReadLine(); //读取用户的输入 把输入发送到服务器端

byte[] date = Encoding.UTF8.GetBytes(message2); //把字符串转化成字符数组
tcpClient.Send(date);
Console.ReadKey();
}
}
}

以上是关于Socket网络编程学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

Python学习笔记14(socket编程)

python 3.x 学习笔记13 (网络编程socket)

Socket网络编程学习笔记 网络编程Socket与TCP/UDP

JAVA Socket 编程学习笔记

python学习笔记day8socket网络编程

Python网络编程学习笔记——套接字名与DNS