์๋
ํ์ธ์ wpf ์ด๋ณด์์
๋๋ค.
์ธ๊ตญ ์ ํ๋ธ๋ฅผ ๋ณด๋ฉด์ socket ํต์ ์ ์ด์ฉํ ์ฑํ
ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด ๋ดค๋๋ฐ
์ด๊ฒ ์์ด๋ก ์
๋ ฅํ๋ฉด์ ์ถ๋ ฅ์ด ์ ๋์ง๋ง ์์ด์ธ์ ๋ค๋ฅธ ๊ธ์ ํ์, ํ๊ธ๋ฑ์ ์
๋ ฅํ ๋ ํฐํธ๊ฐ ๊นจ์ง๋ ํ์์ด ๋ฐ์ํฉ๋๋ค.

<์
๋ ฅ๋ ๋ฉ์์ง๋ฅผ ๋ฐ์ดํธํ?>
public string ReadMessage()
{
byte[] msgBuffer;
var length = ReadInt32();
msgBuffer = new byte[length];
_ns.Read(msgBuffer, 0, length);
var msg = Encoding.Default.GetString(msgBuffer);
return msg;
}
๊ทธ๋์ ๋ญ๊ฐ ๋ฐ์ดํธ์ ๊ธธ์ด๋ฅผ ์ ํ์ง ์์์ ๊ทธ๋ฐ๊ฐ ์ถ์ด์ [length]์ 1024๊ฐ์ ์ค๋ดค๋๋ฐ ๊ฐ์๊ธฐ ๊นจ์ง ์์ด ์ ๋์ต๋๋ค.
1024๊ฐ์ ๋ถ์ฌํ์ ๋ ์ ์ถ๋ ฅ์ด ๋์๋์ง ์์ง๊น์ง ์ดํด๋ ์๋ฉ๋๋ค.
๋ฌธ์ ๊ฐ ํด๊ฒฐ ๋ ์ค ์์์ง๋ง, ์ฝ์์ฐฝ์๋ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ์ฑํ
๋ค์ด ๋ฌธ์ ์์ด ์ ๋์ค์ง๋ง ๋ฉ์ธ ์๋์ฐ ์ฐฝ์์๋ ์ฌ์ฉ์์ด๋ฆ๋ง ๋์ค๊ณ ๋ณด๋ธ ๋ฉ์์ง๊ฐ ํ๋ฉด์ ๋ณด์ด์ง ์์ต๋๋ค.

<๋ฐ์ดํธํ ๋ ๋ฉ์์ง๋ฅผ ์ฝ์, ์๋์ฐ ์ฐฝ์ ๋ณด์ฌ์ง๋๋ก ํ๋ >
void Process()
{
while (true)
{
try
{
var opcode = _packetReader.ReadByte();
switch (opcode)
{
case 5:
var msg = _packetReader.ReadMessage();
Console.WriteLine($โ[{DateTime.Now}]: ๋ณด๋ธ ๋ฉ์์ง {Username} {msg}โ);
Program.BroadcastMessage($"[{DateTime.Now}]: ๋ณด๋ธ " + $โ๋ฉ์์ง {Username} {msg}โ);
break;
default:
break;
}
}
๊ทผ๋ฐ ์๊ธด๊ฑด Program.BroadcastMessage($"[{DateTime.Now}]: ๋ณด๋ธ " + $โ๋ฉ์์ง {Username} {msg}โ);
์์ {username}์ ์ง์ฐ๋ฉด ๋ณด๋ธ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ์ด ๋๋ค๋ ๊ฒ ์
๋๋ค.
4์ผ๋์ ์ด๊ฑธ ํด๊ฒฐ๋ชปํ๊ณ ๊ณ์ ์ผ๋ค๊ฐ ๊ณ ์ณค๋ค๊ฐ ํ๊ณ ์์ต๋๋คโฆ ๋์ ๋ถํ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋ค์ด๋ฒ MYBOX ์ ์ฒด ์์ค ์ฝ๋ zipํ์ผ๋ก ์์ถํด ๋์ ๊ณณ ์
๋๋ค.






