SlideShare a Scribd company logo
1 of 6
Лабораторийн ажил 2,3
Хичээлийн агуулга: Клиент сервер програм бичих

Лабораторын ажлын зорилго: Сүлжээний орчинд клиент сервер
програм бичиж сурах бөгөөд энэ лабораторын ажлаар messenger
хийж сурах болно.
Програмчлалын хэл : C#
Прожект файл үүсгэх:
1.
2.
3.
4.

File->New->Blank Solution сонгоно.
Project types->Visual C# Projects
Templates->Windows Application сонгоно.
Application –ны нэрийг Messenger гэж нэрлэнэ.
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

Товч түлхүүр
Прожектын үндсэн кодын хэсэг
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();
}
}
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;
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");
//byte төрлийн data хувьсагчийг зарлж өгөх бөгөөд энэ хувьсагчид richTextBox2.Text-н
утгыг оноож өгнө.
byte[] data =
System.Text.UTF8Encoding.UTF8.GetBytes(richTextBox2.Text);
//сокетоор дамжуулан data хувьсагчийн утгыг илгээж өгнө.
try
{
socket.Send(data);
}
catch (SocketException)
{
}
// richTextBox1.Text өөр дээр нь richTextBox2.Text-н утгыг нэмж өгнө мөн шинэ мөрөнд
шилжих командыг нэмж өгнө.Нэмснийхээ дараа richTextBox2.Text-н утгыг хоосон болгоно.
richTextBox1.Text += Dns.GetHostName() + " > " + richTextBox2.Text + "n";
richTextBox2.Text = " ";
}
}
e. Формыг хаах үед сокетыг хааж өгнө.
private void Form3_FormClosing(object sender, FormClosingEventArgs e)
{
socket.Close();
}
f. Цаг явж байхад сокет идэвхтэй байгаа эсэхийг шалгаад сокетоор дамжуулан
өгөгдлийг хүлээн аваад richTextBox1.Text дээр сүлжээний хаяг болон өгөгдлийг
шинэ мөрийн командыг хамт нэмж өгнө.
private void timer1_Tick(object sender, EventArgs e)
{
if (socket.Available > 0)
{
byte[] data = new byte[socket.Available];
socket.Receive(data);
richTextBox1.Text +=
Dns.GetHostEntry(((IPEndPoint)(socket.RemoteEndPoint)).Address).HostName +
">" + System.Text.UTF8Encoding.UTF8.GetString(data) + "n";
}
}

Лабораторын ажлаар гүйцэтгэх даалгаварууд
1. Дээр өгөгдсөн формын интерфейсийг сайжруул.
2. Лабораторийн ажлын гүйцэтгэлийг 9 сарын 28-ны өдрөөс өмнө шалгуулна уу!.

More Related Content

Viewers also liked

Địa điểm đào tạo nghề dj tốt nhất
Địa điểm đào tạo nghề dj tốt nhấtĐịa điểm đào tạo nghề dj tốt nhất
Địa điểm đào tạo nghề dj tốt nhấtVandieuhuuich
 
ResumeCarlyGraham2015
ResumeCarlyGraham2015ResumeCarlyGraham2015
ResumeCarlyGraham2015Carly Graham
 
Trabajo de informática del cotaesg
Trabajo de informática del cotaesgTrabajo de informática del cotaesg
Trabajo de informática del cotaesgaliabigail
 
Trung tâm đào tạo nghề dj đảm bảo giỏi nhanh
Trung tâm đào tạo nghề dj đảm bảo giỏi nhanhTrung tâm đào tạo nghề dj đảm bảo giỏi nhanh
Trung tâm đào tạo nghề dj đảm bảo giỏi nhanhVandieuhuuich
 
Cota master copa do brasil final
Cota master   copa do brasil finalCota master   copa do brasil final
Cota master copa do brasil finalMeio & Mensagem
 
Flotel Room Availability
Flotel Room AvailabilityFlotel Room Availability
Flotel Room AvailabilityIan Mcewan
 
Aplicatiile mobile pentru business
Aplicatiile mobile pentru businessAplicatiile mobile pentru business
Aplicatiile mobile pentru businesscuriermanager
 
Khóa dạy học nghề dj tốt nhất
Khóa dạy học nghề dj tốt nhấtKhóa dạy học nghề dj tốt nhất
Khóa dạy học nghề dj tốt nhấtVandieuhuuich
 
Tarea aps06cristinaoses
Tarea aps06cristinaosesTarea aps06cristinaoses
Tarea aps06cristinaosescrisoses
 
Ian McEwan Black Dogs
Ian McEwan Black DogsIan McEwan Black Dogs
Ian McEwan Black Dogstrevornorris
 
Лабораторийн ажил 5 - 6
Лабораторийн ажил 5 - 6Лабораторийн ажил 5 - 6
Лабораторийн ажил 5 - 6Chinzorig Undarmaa
 

Viewers also liked (19)

WPCI Brochure
WPCI BrochureWPCI Brochure
WPCI Brochure
 
Địa điểm đào tạo nghề dj tốt nhất
Địa điểm đào tạo nghề dj tốt nhấtĐịa điểm đào tạo nghề dj tốt nhất
Địa điểm đào tạo nghề dj tốt nhất
 
ResumeCarlyGraham2015
ResumeCarlyGraham2015ResumeCarlyGraham2015
ResumeCarlyGraham2015
 
Trabajo de informática del cotaesg
Trabajo de informática del cotaesgTrabajo de informática del cotaesg
Trabajo de informática del cotaesg
 
Scan0107
Scan0107Scan0107
Scan0107
 
Лекц 3
Лекц 3Лекц 3
Лекц 3
 
Trung tâm đào tạo nghề dj đảm bảo giỏi nhanh
Trung tâm đào tạo nghề dj đảm bảo giỏi nhanhTrung tâm đào tạo nghề dj đảm bảo giỏi nhanh
Trung tâm đào tạo nghề dj đảm bảo giỏi nhanh
 
Cota master copa do brasil final
Cota master   copa do brasil finalCota master   copa do brasil final
Cota master copa do brasil final
 
Flotel Room Availability
Flotel Room AvailabilityFlotel Room Availability
Flotel Room Availability
 
Los Caballos
Los CaballosLos Caballos
Los Caballos
 
Бие даалт-4
Бие даалт-4Бие даалт-4
Бие даалт-4
 
State of Recycling - Action Environmental Group
State of Recycling - Action Environmental GroupState of Recycling - Action Environmental Group
State of Recycling - Action Environmental Group
 
Aplicatiile mobile pentru business
Aplicatiile mobile pentru businessAplicatiile mobile pentru business
Aplicatiile mobile pentru business
 
Khóa dạy học nghề dj tốt nhất
Khóa dạy học nghề dj tốt nhấtKhóa dạy học nghề dj tốt nhất
Khóa dạy học nghề dj tốt nhất
 
Tarea aps06cristinaoses
Tarea aps06cristinaosesTarea aps06cristinaoses
Tarea aps06cristinaoses
 
Ian McEwan Black Dogs
Ian McEwan Black DogsIan McEwan Black Dogs
Ian McEwan Black Dogs
 
Лабораторийн ажил 5 - 6
Лабораторийн ажил 5 - 6Лабораторийн ажил 5 - 6
Лабораторийн ажил 5 - 6
 
Лекц 4
Лекц 4Лекц 4
Лекц 4
 
Lecture2
Lecture2Lecture2
Lecture2
 

Similar to Лабораторийн ажил 2

Лабораторийн ажил 5
Лабораторийн ажил 5Лабораторийн ажил 5
Лабораторийн ажил 5Chinzorig Undarmaa
 
Лабораторийн ажил 4
Лабораторийн ажил 4Лабораторийн ажил 4
Лабораторийн ажил 4Chinzorig Undarmaa
 
овог нэр хэвлэх хялбар програм
овог нэр хэвлэх хялбар програмовог нэр хэвлэх хялбар програм
овог нэр хэвлэх хялбар програмOnon Tuul
 
лабораторийн ажил 5
лабораторийн ажил 5лабораторийн ажил 5
лабораторийн ажил 5ulziibaatar
 
Lab6 excel
Lab6 excelLab6 excel
Lab6 excelBPurev
 
файл, файлын оролт гаралт
файл, файлын оролт гаралтфайл, файлын оролт гаралт
файл, файлын оролт гаралтKhishighuu Myanganbuu
 
Auto cad программын монгол ном
Auto cad программын монгол номAuto cad программын монгол ном
Auto cad программын монгол номNamsrai Namchin
 
Auto cad программын монгол ном
Auto cad программын монгол номAuto cad программын монгол ном
Auto cad программын монгол номBuka King
 
Visual programming-2 noanswer
Visual programming-2 noanswerVisual programming-2 noanswer
Visual programming-2 noanswerGantur Togtokh
 

Similar to Лабораторийн ажил 2 (10)

Лабораторийн ажил 5
Лабораторийн ажил 5Лабораторийн ажил 5
Лабораторийн ажил 5
 
Лабораторийн ажил 4
Лабораторийн ажил 4Лабораторийн ажил 4
Лабораторийн ажил 4
 
овог нэр хэвлэх хялбар програм
овог нэр хэвлэх хялбар програмовог нэр хэвлэх хялбар програм
овог нэр хэвлэх хялбар програм
 
лабораторийн ажил 5
лабораторийн ажил 5лабораторийн ажил 5
лабораторийн ажил 5
 
Lab6 excel
Lab6 excelLab6 excel
Lab6 excel
 
файл, файлын оролт гаралт
файл, файлын оролт гаралтфайл, файлын оролт гаралт
файл, файлын оролт гаралт
 
Auto cad программын монгол ном
Auto cad программын монгол номAuto cad программын монгол ном
Auto cad программын монгол ном
 
Autocad 140430000617-phpapp02
Autocad 140430000617-phpapp02Autocad 140430000617-phpapp02
Autocad 140430000617-phpapp02
 
Auto cad программын монгол ном
Auto cad программын монгол номAuto cad программын монгол ном
Auto cad программын монгол ном
 
Visual programming-2 noanswer
Visual programming-2 noanswerVisual programming-2 noanswer
Visual programming-2 noanswer
 

More from Chinzorig Undarmaa (20)

Лабораторийн ажил 12
Лабораторийн ажил 12Лабораторийн ажил 12
Лабораторийн ажил 12
 
Лекц 8
Лекц 8Лекц 8
Лекц 8
 
Лекц 8
Лекц 8Лекц 8
Лекц 8
 
Лекц 8
Лекц 8Лекц 8
Лекц 8
 
Лекц 8
Лекц 8Лекц 8
Лекц 8
 
Хичээлийн тодорхойлолт
Хичээлийн тодорхойлолтХичээлийн тодорхойлолт
Хичээлийн тодорхойлолт
 
Бие даалтын удирдамж
Бие даалтын удирдамжБие даалтын удирдамж
Бие даалтын удирдамж
 
Лекц 1
Лекц 1Лекц 1
Лекц 1
 
Лекц 2
Лекц 2Лекц 2
Лекц 2
 
Лекц 3
Лекц 3Лекц 3
Лекц 3
 
Лабораторийн ажил 3 - 4
Лабораторийн ажил 3 - 4Лабораторийн ажил 3 - 4
Лабораторийн ажил 3 - 4
 
Лекц 5 - 6
Лекц 5 - 6Лекц 5 - 6
Лекц 5 - 6
 
Лабораторийн ажил 7
Лабораторийн ажил 7Лабораторийн ажил 7
Лабораторийн ажил 7
 
Лекц 7
Лекц 7Лекц 7
Лекц 7
 
Хичээлийн тодорхойлолт
Хичээлийн тодорхойлолтХичээлийн тодорхойлолт
Хичээлийн тодорхойлолт
 
Бие даалтын удирдамж
Бие даалтын удирдамжБие даалтын удирдамж
Бие даалтын удирдамж
 
Лабораторийн ажил 7
Лабораторийн ажил 7Лабораторийн ажил 7
Лабораторийн ажил 7
 
Лабораторийн ажил 6
Лабораторийн ажил 6Лабораторийн ажил 6
Лабораторийн ажил 6
 
Лабораторийн ажил 6
Лабораторийн ажил 6Лабораторийн ажил 6
Лабораторийн ажил 6
 
Лабораторийн ажил 7
Лабораторийн ажил 7Лабораторийн ажил 7
Лабораторийн ажил 7
 

Лабораторийн ажил 2

  • 1. Лабораторийн ажил 2,3 Хичээлийн агуулга: Клиент сервер програм бичих Лабораторын ажлын зорилго: Сүлжээний орчинд клиент сервер програм бичиж сурах бөгөөд энэ лабораторын ажлаар messenger хийж сурах болно. Програмчлалын хэл : C# Прожект файл үүсгэх: 1. 2. 3. 4. File->New->Blank Solution сонгоно. Project types->Visual C# Projects Templates->Windows Application сонгоно. Application –ны нэрийг Messenger гэж нэрлэнэ.
  • 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");
  • 6. //byte төрлийн data хувьсагчийг зарлж өгөх бөгөөд энэ хувьсагчид richTextBox2.Text-н утгыг оноож өгнө. byte[] data = System.Text.UTF8Encoding.UTF8.GetBytes(richTextBox2.Text); //сокетоор дамжуулан data хувьсагчийн утгыг илгээж өгнө. try { socket.Send(data); } catch (SocketException) { } // richTextBox1.Text өөр дээр нь richTextBox2.Text-н утгыг нэмж өгнө мөн шинэ мөрөнд шилжих командыг нэмж өгнө.Нэмснийхээ дараа richTextBox2.Text-н утгыг хоосон болгоно. richTextBox1.Text += Dns.GetHostName() + " > " + richTextBox2.Text + "n"; richTextBox2.Text = " "; } } e. Формыг хаах үед сокетыг хааж өгнө. private void Form3_FormClosing(object sender, FormClosingEventArgs e) { socket.Close(); } f. Цаг явж байхад сокет идэвхтэй байгаа эсэхийг шалгаад сокетоор дамжуулан өгөгдлийг хүлээн аваад richTextBox1.Text дээр сүлжээний хаяг болон өгөгдлийг шинэ мөрийн командыг хамт нэмж өгнө. private void timer1_Tick(object sender, EventArgs e) { if (socket.Available > 0) { byte[] data = new byte[socket.Available]; socket.Receive(data); richTextBox1.Text += Dns.GetHostEntry(((IPEndPoint)(socket.RemoteEndPoint)).Address).HostName + ">" + System.Text.UTF8Encoding.UTF8.GetString(data) + "n"; } } Лабораторын ажлаар гүйцэтгэх даалгаварууд 1. Дээр өгөгдсөн формын интерфейсийг сайжруул. 2. Лабораторийн ажлын гүйцэтгэлийг 9 сарын 28-ны өдрөөс өмнө шалгуулна уу!.