دوست عزیز اگه قراره ارتباط به صورت همزمان و Real Time باشه سوکت گزینه مناسبی هست ولی اگر ارتباط غیر همزمان هست من ترجیم میدم از گزینه ی وب سرویس استفاده کنم. چون با سوکت شما همه کارهایی که انجام میدی با بایت ها هست و Serialize و Deserilize کردن داستان خودشو داره. مخصوصا زمانی که حجم داده ای که داری جابجا میکنی بزرگ باشه نیاز به مدیریت دقیق داره.
ولی این یک نمونه ساده سمت سرور و کلاینت برای سوکت هست که به زبان سی شارپ هست.
شما میتونی سمت سرور از همین کد سی شارپ استفاده کنی ولی سمت کلاینت رو با جاوا بنویسی. تفاوت چندانی نداره اصول یکسانه ولی شکل دستوارت کمی فرق داره.
سمت سرور
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
var endPoint = new IPEndPoint(IPAddress.Any, 8585);
socket.Bind(endPoint);
socket.Listen(10);
var clientSocket = socket.Accept();
var buffer=new byte[1024];
clientSocket.Receive(buffer);
سمت کلاینت
var ip = new IPAddress(new byte[] { 192,168,110,11 });
var endPoint = new IPEndPoint(ip, 8585);
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(endPoint);
socket.Send(new byte[] {97 , 98 ,99 });
پیشنهاد من اینه که اصول برنامه نویسی سکوت رو حتما مطالعه کنید تا نحوه استفاده مناسب از متدهایی مثل Bind , Listen , Accept رو یاد بگیرید.