一个简单c#的socket连接例子源码
建立一个解决方案,分别建立两个控制台应用程序,一个是client端,一个是server端,本例子源码来自C#网络编程技术与实践第一章具体如下:程序运行先运行server端,再运行客户端,这里客户端运行
data = Encoding.ASCII.GetString(buffer, 0, recv);
Console.WriteLine(data);
这段代码运行乱码,具体解决下篇介绍
using System;
using System.Net.Sockets;
using System.Net;
namespace serversocket
{
class Program
{
static void Main(string[] args)
{
Socket client;
int recv;
//byte[] message = new byte[1024];
Socket ServerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
IPAddress adr = IPAddress.Parse("192.168.1.119");
IPEndPoint ep = new IPEndPoint(adr, 3000);
ServerSocket.Bind(ep); //类似于客户机的connect()方法
ServerSocket.Listen(3); //开始监听
while (true)
{
if ((client = ServerSocket.Accept()) != null)
{
Console.WriteLine("连接上...发送数据....");
//欲发送的字节数组,以0为结束标记
byte[] message = { 10, 20, 30, 40, 50, 60, 0 };
//send方法返回发送的字节数
Console.WriteLine("总计将发送" + client.Send(message) + "个字节的数据");
Console.WriteLine("结束.");
client.Close();
break;
}
}
}
}
}
using System;
using System.Text;
using System.Net.Sockets;
using System.Net;
namespace clientsocket
{
class Program
{
static void Main(string[] args)
{
Socket Server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP); //建立客户端套接字
IPAddress adr = IPAddress.Parse("192.168.1.119");
IPEndPoint ep = new IPEndPoint(adr, 3000);
Server.Connect(ep); //完成绑定
byte[] buffer = new byte[255];
String data = null;
int recv = 0;
recv = Server.Receive(buffer);
if (recv > 0)
{
Console.WriteLine("连接上...");
Console.WriteLine("从服务器接收数据...");
data = Encoding.ASCII.GetString(buffer, 0, recv);
Console.WriteLine(data);
while (true)
{
String input;
input = Console.ReadLine();
if (input == "exit")
{
break;
}
Server.Send(Encoding.ASCII.GetBytes(input));
}
Console.WriteLine("连接断开...");
Server.Shutdown(SocketShutdown.Both);
Server.Close();
}
}
}
}
原创文章转载请注明出处:云飞扬IT的blog