Лекцийн төгсгөлд бичиж үзүүлсэн клиент сервер програмчлалын демо. Уг демо нь нэг форм дээр клиент, сервер хоёр нь хамт оршин байгаа. Та бүгд үүнийг хоёр тусдаа програм болгон, хоёр өөр компьютер дээр туршиж үзээрэй.
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);
// serverluu client holbogdoj baina
_ClientSocket.Connect(_IpEndPoint);
// textbox1 -iin unicode textees byte massive ruu huvirgaj baina.
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 button2_Click(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
// ip hayag 127.0.0.1, port: 5124 deer server uusgeh
_TcpListener = new TcpListener(IPAddress.Parse("127.0.0.1"),5124);
}
private void timer1_Tick(object sender, EventArgs e)
{
if (_TcpListener.Pending() == true)
{
//huleegdej baigaa socketiig huleen avch zovshooroh
_HostSocket = _TcpListener.AcceptSocket() ;
if (_HostSocket.Poll(1, SelectMode.SelectRead))
{
//huleegdej baigaa suljeenii ugugduliin byte-iin too
int numBytes = _HostSocket.Available;
Byte [] Data = new Byte[numBytes];
_HostSocket.Receive(Data);
// suljeenii ugugduliig data massive d huleen avch baina
textBox2.Text +=System.Text.ASCIIEncoding.ASCII.GetString(Data) ;
// huleen avsan byte massive-aas string uusgej textbox2 d onooj baina
timer1.Stop();
//negent ugugdul huleen avsan bol timeraa zogsooj baina
}
}
}
private void button3_Click(object sender, EventArgs e)
{
_TcpListener.Start(); // serveree ehluulj baina
}
}
}
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);
// serverluu client holbogdoj baina
_ClientSocket.Connect(_IpEndPoint);
// textbox1 -iin unicode textees byte massive ruu huvirgaj baina.
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 button2_Click(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
// ip hayag 127.0.0.1, port: 5124 deer server uusgeh
_TcpListener = new TcpListener(IPAddress.Parse("127.0.0.1"),5124);
}
private void timer1_Tick(object sender, EventArgs e)
{
if (_TcpListener.Pending() == true)
{
//huleegdej baigaa socketiig huleen avch zovshooroh
_HostSocket = _TcpListener.AcceptSocket() ;
if (_HostSocket.Poll(1, SelectMode.SelectRead))
{
//huleegdej baigaa suljeenii ugugduliin byte-iin too
int numBytes = _HostSocket.Available;
Byte [] Data = new Byte[numBytes];
_HostSocket.Receive(Data);
// suljeenii ugugduliig data massive d huleen avch baina
textBox2.Text +=System.Text.ASCIIEncoding.ASCII.GetString(Data) ;
// huleen avsan byte massive-aas string uusgej textbox2 d onooj baina
timer1.Stop();
//negent ugugdul huleen avsan bol timeraa zogsooj baina
}
}
}
private void button3_Click(object sender, EventArgs e)
{
_TcpListener.Start(); // serveree ehluulj baina
}
}
}
Багш: маг. Ч. Эрдэнэбат
2009-9-30
No comments:
Post a Comment