Визуаль програмчлал хичээлийн 9 -р лекцээр бид Microsoft .NET технологи ашиглан сүлжээний орчинд ажиллах програм хэрхэн бичих талаар авч үзэн, холбогдох жишээг хамтдаа хийлээ.
Энэхүү жишээний програм нь сервер, клиент хоёрыг давхар агуулах нэг формоос тогтож байгаа.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
namespace lec9_demo
{
public partial class Form1 : Form
{
Socket _ClientSocket;
Socket _HostSocket;
TcpListener _TcpListener;
IPEndPoint _IpEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 5124) ;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
_ClientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp);
_ClientSocket.Connect(_IpEndPoint);
Byte [] Buffer = System.Text.ASCIIEncoding.ASCII.GetBytes(textBox1.Text);
_ClientSocket.Send(Buffer, 0, Buffer.Length, SocketFlags.None);
timer1.Interval = 10;
timer1.Start();
_ClientSocket.Shutdown(SocketShutdown.Both);
_ClientSocket.Close();
}
private void Form1_Load(object sender, EventArgs e)
{
_TcpListener = new TcpListener(IPAddress.Parse("127.0.0.1"),5124);
}
private void timer1_Tick(object sender, EventArgs e)
{
if (_TcpListener.Pending() == true)
{
_HostSocket = _TcpListener.AcceptSocket() ;
if (_HostSocket.Poll(1, SelectMode.SelectRead))
{
int numBytes = _HostSocket.Available;
Byte [] Data = new Byte[numBytes];
_HostSocket.Receive(Data);
textBox2.Text +=System.Text.ASCIIEncoding.ASCII.GetString(Data) ;
//textBox2.Text += ControlChars.CrLf;
timer1.Stop();
}
}
}
private void button3_Click(object sender, EventArgs e)
{
_TcpListener.Start();
}
}
}
Прожектийг бүхэлд нь татаж авахыг хүсвэл та доорх линкийг дарна уу.
Энэхүү жишээний програм нь сервер, клиент хоёрыг давхар агуулах нэг формоос тогтож байгаа.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
namespace lec9_demo
{
public partial class Form1 : Form
{
Socket _ClientSocket;
Socket _HostSocket;
TcpListener _TcpListener;
IPEndPoint _IpEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 5124) ;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
_ClientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp);
_ClientSocket.Connect(_IpEndPoint);
Byte [] Buffer = System.Text.ASCIIEncoding.ASCII.GetBytes(textBox1.Text);
_ClientSocket.Send(Buffer, 0, Buffer.Length, SocketFlags.None);
timer1.Interval = 10;
timer1.Start();
_ClientSocket.Shutdown(SocketShutdown.Both);
_ClientSocket.Close();
}
private void Form1_Load(object sender, EventArgs e)
{
_TcpListener = new TcpListener(IPAddress.Parse("127.0.0.1"),5124);
}
private void timer1_Tick(object sender, EventArgs e)
{
if (_TcpListener.Pending() == true)
{
_HostSocket = _TcpListener.AcceptSocket() ;
if (_HostSocket.Poll(1, SelectMode.SelectRead))
{
int numBytes = _HostSocket.Available;
Byte [] Data = new Byte[numBytes];
_HostSocket.Receive(Data);
textBox2.Text +=System.Text.ASCIIEncoding.ASCII.GetString(Data) ;
//textBox2.Text += ControlChars.CrLf;
timer1.Stop();
}
}
}
private void button3_Click(object sender, EventArgs e)
{
_TcpListener.Start();
}
}
}
Прожектийг бүхэлд нь татаж авахыг хүсвэл та доорх линкийг дарна уу.
http://www.mediafire.com/file/yojjldgnyyx/lec9_demo.rar
Сайн байна уу багшаа?
ReplyDeleteНэг юм асуух гэсэн юмаа. 64bit процессортой компьютер дээр Visual Studio 2008-г яаж ажилуулах вэ? Google-с хайгаад олигтой юм олдохгүй байна.
requested registry access is not allowed
гэсэн алдаа заагаад байна. VS2008-аа ADMIN эрхээр ажилуулсан ч ялгаагүй байна. Яах вэ багшаа?
Энэ 64 битийн процессортой хамаагүй байхаа. Энэ зүгээр л регистр луу хандах эрх байхгүй байна гэсэн үйлдлийн системийн анхааруулга байх шиг байна.
ReplyDeleteVS2008 нь зүгээр ажиллачихаад шинэ прожект үүсгэхээр л ийм алдаа заагаад бх шиг байгаа юм.
ReplyDeleteСайн хэлж мэдэхгүй юм.
ReplyDeleteза за баярлалаа. багшаа.
ReplyDelete