Mình không thấy ai post socket nên minh xin phep post mot bài
:001:
Phần SERVER:
Mã:
//Chuong trinh Server:
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;
class Seryer
{
static void Main(string[] args)
{
IPEndPoint iep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2008);
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
server.Bind(iep);
server.Listen(10);
Console.WriteLine("Cho ket noi tu client");
Socket client = server.Accept();
Console.WriteLine("Chap nhan ket noi tu:{0}", client.RemoteEndPoint.ToString());
string s = "CMung DVoi Server, Upper, Tinh Tong voi CP: T X Y, T.DO X la ST1, Y ST2";
//Chuyen chuoi s thanh mang byte
byte[] data = new byte[1024];
data = Encoding.ASCII.GetBytes(s);
//gui nhan du lieu theo giao thuc da thiet ke
client.Send(data, data.Length, SocketFlags.None);
while (true)
{
data = new byte[1024];
int recv = client.Receive(data);
if (recv == 0) break;
//Chuyen mang byte Data thanh chuoi va in ra man hinh
s = Encoding.ASCII.GetString(data, 0, recv);
//Bat dau tinh Tong, Xem Cu Phap Nhap Tren
string[] ma = new string[5];
int t=0;
for (int i = 0; i < 5; i++)
{
ma = s.Split(' ');
}
try//xu li ngoai le
{
if (ma[0] == "T")
{
t = Convert.ToInt32(ma[1]) + Convert.ToInt32(ma[2]);
}
}
catch {
string gcl="Ban Da Nhap Sai Cu Phap, Enter De Ket Thuc CT";
data = Encoding.ASCII.GetBytes(gcl);
client.Send(data, data.Length, SocketFlags.None);
s="QUIT";
data = Encoding.ASCII.GetBytes(s);
client.Send(data, data.Length, SocketFlags.None);
}
Console.WriteLine(t.ToString());
Console.WriteLine("Clien gui len:{0}", s);
//Neu chuoi nhan duoc la Quit thi thoat
if (s.ToUpper().Equals("QUIT")) break;
//Gui tra lai cho client chuoi s
s = s.ToUpper();
data = new byte[1024];
//Tai day dung if de lua chon upper hay tinh tong
if (ma[0] == "T")
{
data = Encoding.ASCII.GetBytes(t.ToString());
}
else {
data = Encoding.ASCII.GetBytes(s);
}
client.Send(data, data.Length, SocketFlags.None);
}
client.Shutdown(SocketShutdown.Both);
client.Close();
server.Close();
}
}
Phần Client:
Mã:
//Chuong trinh Client:
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;
class Client
{
static void Main(string[] args)
{
IPEndPoint iep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2008);
Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
client.Connect(iep);
byte[] data = new byte[1024];
int recv = client.Receive(data);
string s = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine("Server gui:{0}", s);
string input;
while (true)
{
input = Console.ReadLine();
//Chuyen input thanh mang byte gui len cho server
data = new byte[1024];
data = Encoding.ASCII.GetBytes(input);
client.Send(data, data.Length, SocketFlags.None);
if (input.ToUpper().Equals("QUIT")) break;
data = new byte[1024];
recv = client.Receive(data);
s = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine("Server gui:{0}", s);
if (s == "QUIT") break;
}
client.Disconnect(true);
client.Close();
}
}
Mọi người có thể tham khảo và góp ý.
MÌnh vẫn còn một số vấn đề vẫn chưa xử lí hết.
Mọi ngừoi góp ý.:029: