خوب دوستان عزیز امیدوارم که این مقاله بدردتون خورده باشه در ادامه کد یک برنامه چت ساده رو براتون می ذارم که دقیقا با توجه به آموزش بالا نوشتم البته اینم بگم که منظور از این کد نوشتن چت بصورت حرفه ای نبوده فقط می خواستم آموزش بالا در قالب یک مثال ساده پیاده سازی بشه:
import java.net.*;
import java.io.*;
import java.util.*;
public class tcpserver {
public static void main(String[] args) throws Exception {
ServerSocket mysock = new ServerSocket(1254);مرحله اول
Socket mylink = mysock.accept();مرحله دوم
System.out.println("new client conected");
DataInputStream input = new DataInputStream(mylink.getInputStream());مرحل سوم
DataOutputStream output = new DataOutputStream(mylink.getOutputStream());
String request="";
String sendstring;
Scanner inp = new Scanner(System.in);
while ( !request.equals("QUIT") )
{
request = input.readUTF ();مرحله چهارم
System.out.println(request);
sendstring=inp.next();
output.writeUTF (sendstring);
}
mylink.close(); مرحله پنجم
}
}
توی کد بالا مراحل مرتبط با آموزش رو هم نوشتم که اگه گام به گام پیش برید قطعا می تونید این برنامه چت ساده رو بنویسید.
کد کلاینت چت:
import java.net.*;
import java.io.*;
import java.util.*;
public class TCPclient {
public static void main(String[] args) throws Exception {
Socket mysock=new Socket(InetAddress.getLocalHost(),1254);
DataInputStream input = new DataInputStream(mysock.getInputStream());
DataOutputStream output = new DataOutputStream(mysock.getOutputStream());
String request;
String sendstring="";
Scanner inp = new Scanner(System.in);
while ( !sendstring.equals("QUIT"))
{
sendstring=inp.next();
output.writeUTF (sendstring);
request = input.readUTF ();
System.out.println(request);
}
mysock.close();
}
}
نکات:
1- طبیعاتا اول برنامه سرور باید اجرا بشه.
2- کلاینت شروع کننده و خاتمه دهنده چت می باشد.
3-مکالمه باید یک در میان باشه یعنی کلاینت یه چیزی بگه بعد سرور جواب بده مجددا نوبت کلاینت میشه.
4- مکالمه با ارسال QUIT از طرف کلاینت خاتمه پیدا میکنه.
بازم می گم هدف از برنامه بالا نوشتم چت نبوده برای همین اینقدر چت کردن توش شرط و شروط داره

به همین علت اگه ضعفی هم داره دوستان به بزرگی خودشون ببخشن ما رو

ولی نکته مهم مربوط میشه به نکته سه یعنی یکی در میان بودن نوع چت به این دلیل که هر یک از دو بخش کلاینت و سرور بعد از ارسال داده منتظر دریافت می مونن یعنی قادر نیستن همزمان هم داده ارسال کنند و هم منتظر دریافت باشن یعنی این برنامه ساده قابلیت همزمانی نداره . دقیقا اینجاست که لزوم THREAD به چشم می خوره ! بزودی آموزش قدم به قدم THREAD نویسی توسط دوست عزیزم محسن آماده میشه و بعد از اون سعی می کنیم به کمک هم کد بالا رو کامل تر کنیم.منتظر اتصال از نوع UDP هم باشید.
با تشکر از دست اندر کاران این سایت که محیطی مناسب برای تبادل اطلاعات برای علاقمندان فراهم نموده اند. همچنین با تشکر از استاد عزیزم Liew Chee Sun که واقعا دری بسوی برنامه نویسی تحت شبکه با جاوا بروی ما گشود.