客户端:
using System;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace tcp客户端
{
class c
{
static void Main(string[] args)
{
//1、创建Socket
Socket tcpClient=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
//2、发起建立连接的请求
IPAddress iPAddress=IPAddress.Parse("10.102.144.203");//可以把一个字符串的ip地址转化成一个IPAddress的对象。
EndPoint point=new IPEndPoint(iPAddress,7788);
tcpClient.Connect(point);//通过ip,端口号定位一个要链接到的服务器端。
byte[] data=new byte [1024];
int length=tcpClient.Receive(data);//这里传递一个byte数组,实际上这个data数组用来接收数据
//length返回值表示接受了多少字节的数据
string message=Encoding.UTF8.GetString(data,0,length);//只把接收到的数据做一个转化
System.Console.WriteLine(message);
//向服务器端发送消息
string messages2=Console.ReadLine();//读取用户输入,把输入发送到服务器端
tcpClient.Send(Encoding.UTF8.GetBytes(messages2));//把字符串转化为字符串数组,然后发送到服务器端。
Console.ReadLine();
}
}
}
服务器端:
using System.Net.Sockets;
using System.Net;
using System;
using System.Threading.Tasks;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace tcp服务器端
{
class A
{
static void Main(string[]args)
{
//1、创建soket
//属性:内网 ,以什么方式进行通信:流, 协议。
Socket TcpServer=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
//2、绑定ip跟端口号10.102.144.203
IPAddress iPAddress=new IPAddress(new byte[]{10,102,144,203});
EndPoint point=new IPEndPoint(iPAddress,7788);//IPEndPoint是对ip+端口做了一层封装的类。
TcpServer.Bind(point);//像操作系统申请一个可用的ip跟端口号,用来做通信。
//3、开始监听(等待客户端连接)
TcpServer.Listen(100);//参数是最大连接数。
//4、接收客户端的连接
Socket clientSocket = TcpServer.Accept();//暂停当前线程,知道有一个客户端链接过来,之后进行下面的代码。
//使用返回的Socket跟客户端做通信
System.Console.WriteLine("客户端连接成功");
while(true)
{
System.Console.WriteLine("请输入.....");
string message=Console.ReadLine();
byte[]data=Encoding.UTF8.GetBytes(message);//对字符串左边吗,得到一个字符串的字节数组
clientSocket.Send(data);
byte[]data2=new byte[1024];//创建一个字节数组用来做容器,去承接客户端发送来的数据
int length=clientSocket.Receive(data2);
string messages2=Encoding.UTF8.GetString(data2,0,length);//把字节数组转化成一个字符串。
Console.WriteLine(messages2);
}
}
}
}