终于掌握了最基本的socket通信在.net框架下用c#语言

哈哈,努力了有10天吧。从开始学C#的语法,再学计算机网络的基本原理,然后去看别人c# socket 编程的例子。理解了,自己能写出了,完全是自己写出的。还是很有感觉的。

服务器端程序代码

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

namespace ServerApp
{
class Program          {
    public static void Main(string[] args)
        {
        IPAddress ipA = IPAddress.Parse("127.0.0.1");
        int portid;
        portid = 5566;
        IPEndPoint ipE = new IPEndPoint(ipA,portid);
        
        Socket socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
        socket.Bind(ipE);
        socket.Listen(1);
        Console.WriteLine("listening");
        
        Socket mSocket = socket.Accept();
        
        string message;
        message = "welcome to me server";
        byte[] b = new byte[1024];
        b = Encoding.UTF8.GetBytes(message);
        mSocket.Send(b);
        
        b = new byte[1024];
        int rbn = mSocket.Receive(b);
        message = Encoding.UTF8.GetString(b,0,rbn);
        Console.WriteLine(message);
        
        b = new byte[1024];
        b = Encoding.UTF8.GetBytes("client,your confirmation is received");
        mSocket.Send(b);
        
        Console.Write("Press any key to continue . . . ");
        Console.ReadKey(true);
         }
                      }
}


客户端程序代码

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace ClientApp
{
class Program        {
	public static void Main(string[] args)
		{
		IPAddress serIpA = IPAddress.Parse("127.0.0.1");
		IPEndPoint serIpE = new IPEndPoint (serIpA,5566);
		
		Socket socket = new Sockets(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
		socket.Connect(serIpE);
		
		byte[] b = new byte[1024];
		int rbn;
		rbn = socket.Receive(b);
		string message;
		message = Encoding.UTF8.GetString(b,0,rbn);
		Console.WriteLine(message);
		
		b = new byte[1024];
		b = Encoding.UTF8.GetBytes("server,i have received your words of welcome");
		socket.Send(b);
		
		b = new byte[1024];
		rbn = socket.Receive(b);
		message = Encoding.UTF8.GetString(b,0,rbn);
		Console.WriteLine(message);
		
		socket.Close();
		
		Console.Write("Press any key to continue . . . ");
		Console.ReadKey(true);
		 }
	                  }
}

我学c#,是因为它是我在.net框架下实现网络互联的工具。我不想,在我实现我的想法的时候,被一些语法上的问题卡住,造成很难受的感觉,并且实现效率也很低下。那么我的C#必须熟悉。这样,也有助于我看懂别人的类似实现的代码,参考他人的思路。在入门的时候,找到好的例子是非常重要的,好的例子,可以让自己很快的把握住知识的关键,而不是跟着堆砌无关的代码。但是,这个阶段,我还不想把C#学得多么深入。现在这个阶段,我还是要把计算机网络的原理搞懂,变成自己的东西,这要求自己深刻体会前人的思想、思路和思维模式,让自己面对事实,也能发展出自己的思路,并利用计算机的原理原则和方法实现自己的思路。然后借助.net框架和C语言,将思路变成实际的互联网产品。在计算机网络原理和C#.net之间,还需要补充的是网络开发的业务逻辑。这是参考别人的代码和思路能够补充的。现在的计算机网络原理还很薄弱,还需要加强,但是因为这方面的书是有限的经典,你又喜欢看书。因此,下面,就是要大量的投入时间在读书上,这是首要。比较次要的,是在读书之余,阅读他人的实现例子。在阅读中产生的想法,及时上机实现。但上机已经不是重点了。平常上机,也就是练一练C#的语法和惯例(idiom)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值