以聊天为例,,,注意要开两个vs,开启多客户端,客户端.exe文件在右键–>文件管理器中打开文件夹下–>bin–>Debug–.exe文件
(我这里的工程目录是==》 H:\vs 2015\Socket\Scoket编程\001-Scoket_TCP客户端\bin\Debug)
服务端代码:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace Socket_TCP服务端
{
class Program
{
static void Main(string[] args)
{
//1.创建服务端的Socket对象,(内网,流,协议)
Socket SeverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//本机ip地址
IPAddress ipaddres = IPAddress.Parse("192.168.1.11");
//ipendpoint 是对Ip+端口做了一层封装类
EndPoint endpoint = new IPEndPoint(ipaddres,3355);
//2,绑定IP地址和端口,,用来做通信
SeverSocket.Bind(endpoint);
Console.WriteLine("服务端开始监听");
//3,监听,,等待客户端做连接(最大连接数)
SeverSocket.Listen(100);
//4,接收客户端连接,暂停当前线程直达有一个客户端连接后,进行下面的操作
Socket clientScoket = SeverSocket.Accept();
Console.WriteLine("有客户端接入");
//5,使用上面返回的Socket和客户端做通信
string message = "Czhenya 欢迎您连接";
//对字符串做编码,得到一个字符数组
byte[] data = Encoding.UTF8.GetBytes(message);
clientScoket.Send(data); //向客户端消息
Console.WriteLine("向客户端发送一条数据:"+message);
//创建数组,接收客户端发来的数据
byte[] tempdata = new byte[1024];
int length = clientScoket.Receive(tempdata);
string tempmessage = Encoding.UTF8.GetString(tempdata,0,length);
Console.WriteLine("接到客户端数据:"+tempmessage);
Console.ReadKey();
}
}
}
客户端代码:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace _001_Scoket_TCP客户端
{
class Program
{
static void Main(string[] args)
{
//1 创建Socket
Socket tcpClient = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
//2 发起建立连接的请求,,,注意和客户端一致
IPAddress ipassress = IPAddress.Parse("192.168.1.11");
EndPoint point = new IPEndPoint(ipassress,3355);
//通过ip端口号,定位一个连接到服务器
tcpClient.Connect(point);
//接收并存放数据的数组
byte[] data = new byte[1024];
//返回表示接收到数据的长度
int length = tcpClient.Receive(data);
//表示从0开始到length(接收到数据)做转换,,
string message = Encoding.UTF8.GetString(data,0,length);
Console.WriteLine(message);
//用户输入,,向服务器端发送消息
string tempMessage = Console.ReadLine();
tcpClient.Send(Encoding.UTF8.GetBytes(tempMessage));
Console.ReadKey();
}
}
}
UDP:http://blog.csdn.net/czhenya/article/details/78296923
过程代码中注释的已经很清楚了,,不再赘述,看看运行结果图吧: