2. Form1 формд хэрэглэгдэх контролуудын шинж чанарууд:
Контролын нэр
Form
MenuStrip1
Шинж чанар
Text
auto size
Maximum size
Name
Menu
Хэрэглэгч
Утгууд
Messenger
GrowAndShrink
false
дурын
Товч түлхүүр
гарах
Хэрэглэгч нэмэх
Хэрэглэгч хасах
Ctrl+end
Ctrl+a
Ctrl+b
Listbox1
Timer1
Form2 формд хэрэглэгдэх контролуудын шинж чанарууд:
Контролын нэр
Form
Label1
Textbox1
Button1
Button2
Шинж чанар
Text
auto size
Maximum size
Acceptbutton
Cancelbutton
Text
Утгууд
Хэрэглэгч нэмэх
GrowAndShrink
false
Button1
Button2
Хэрэглэгч нэмэх
Text
Text
Товч түлхүүр
Нэмэх
Хасах
Form3 формд хэрэглэгдэх контролуудын шинж чанарууд:
Контролын нэр
Form
Richtextbox1
Richtextbox2
Button1
Timer1
Шинж чанар
Text
auto size
Maximum size
Утгууд
Text
Enabled
OK
true
GrowAndShrink
false
Товч түлхүүр
3. Прожектын үндсэн кодын хэсэг
1. Form1.
a. дараах нэймспейсүүдийг хэрэглэнэ
using
using
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Windows.Forms;
System.Net;
System.Net.Sockets;
b. Сонсогч объектыг үүсгэнэ.Энэ нь хэрэглэгчийн сүлжээний хаягыг сонсох үүрэгтэй.
TcpListener listener;
c. Форм ачаалах үед хэрэглэгчийн сүлжээний хаягыг сонсон цагыг хэхлүүлнэ.
listener= new TcpListener(new IPAddress(new byte[]{0,0,0,0}),1);
try
{
listener.Start();
}
catch (SocketException)
{
MessageBox.Show("Server not connected");
}
timer1.Enabled = true;
d. Хэрвээ сонсогч нь хүлээлгэнд байвал сокет объект үүсгэн форм3-г дуудана.
Socket / с о к е т / г э д э г н ь к о мп ь юте р
д о то о д б о л о н г а д а а д с ү л жэ э н д
х олбог дох ү ед х э рэ г лэ дэ г прог рам
х а н г а мжи й н к о мп о н е н т юм. Со к е т н ь
п р о г р а м з о р и у л ж с ү л жэ э н и й х о л б о л тыг
н э э ж ө г д ө г .Мө н с ү л жэ э н и й о р ч и н д
ө г ө г д ө л у н ши х б о л о н б и ч и х э д д э мжд э г .
private void timer1_Tick(object sender, EventArgs e)
{
тэ д г э э р с о к е т н ь те х н и к х а н г а мж б и ш
if (listener.Pending())
п р о г р а м х а н г а мж юм
{
Socket socket = listener.AcceptSocket();
//форм3-г дуудахдаа сокетоо дамжуулж өгнө.Сокет нь сүлжээний хаяг
болон портыг өөртөө агуулсан байдаг.
Form3 f = new Form3(socket);
f.Show();
}
}
4. e. Гарах цэсэн дээр дарах үед програмаас шууд гарна.
private void гарахToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
f. Хэрэглэгч нэмэх гэсэн цэсэн дээр дарах үед форм2-н объект үүсгэн форм2 дуудаж
хэрэглэгч нэмнэ.
private void хэрэглэгчНэмэхToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 f1 = new Form2();
f1.ShowDialog();
if (f1.herN != null)
listBox1.Items.Add(f1.herN);
}
g. Хэрэглэгч хасахдаа жагсаалтнаас хэрэглэгчээ сонгож байгаа хэрэглэгч цэснээс
хэрэглэгч хасах гэсэн командыг сонгоно.
private void хэрэглэгчХасахToolStripMenuItem_Click(object sender, EventArgs e)
{
if (listBox1.SelectedIndex >= 0)
listBox1.Items.RemoveAt(listBox1.SelectedIndex);
}
h. Жагсаалтнаас чатлах хэрэглэгчээ сонгоод чатлахын тулд хулганаар хоёр дарж
хэрэглэгчтэйгээ холбогдоно.
private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
{
Socket socket;
//Сокет объект үүсгэхдээ сүлжээний төрөл болон сокетын төрлийг мөн
протоколын төрлийг зааж өгнө.
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp);
try
{
socket.Connect(listBox1.Items[listBox1.SelectedIndex].ToString(), 1);
}
catch (SocketException)
{
MessageBox.Show("Host oldohgui bn");
}
Form3 f3 = new Form3(socket);
f3.Show();
}
2. Form2.
a. дараах нэймспейсүүдийг хэрэглэнэ.
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Windows.Forms;
5. b. Хэрэглэгчийн нэрийг авахаар дараах хувьсагчийг зарлаж өгнө.
public string herN = null;
c. Хэрэглэгч нэмэх гэсэн товчин дээр дарахад дараах кодыг бичиж өгнө.
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text != null)
herN = textBox1.Text;
this.Close();
}
d. Болих товчийг дарж формоос гарна.
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
3. Form3
a. дараах нэймспейсүүдийг хэрэглэнэ.
using
using
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Windows.Forms;
System.Net;
System.Net.Sockets;
b. Формын байгуулагч функц дотор форм1-с дамжуулж ирж буй сокет объектыг параметр болгон авна.
Socket socket;
public Form3(Socket socket)
{
InitializeComponent();
this.socket = socket;
}
c. Форм ачаалах үед формын текстэд хостын нэрийг оноож өгнө.
private void Form3_Load(object sender, EventArgs e)
{
this.Text =
Dns.GetHostEntry(((IPEndPoint)(socket.RemoteEndPoint)).Address).HostName;
}
d. OK товчин дээр дарах үед richtextbox2 дээр байгаа текстыг richtextbox1 –руу илгээж өгнө.
private void button1_Click(object sender, EventArgs e)
{
//хэрвээ richTextBox2.Text нь хоосноос ялгаатай бол сокетоо шалгана.Сокет хэрвээ
холбогдоогүй бол хэрэглэгч холбогдоогүй байна гэсэн мэдээлэл гарч ирнэ.
if (richTextBox2.Text != " ")
{
if (!socket.Connected)
MessageBox.Show("Hereglegch holbogdoogui bn");