// إرجاع اسم المضيف المحلي وعنوان IP؛
InetAddress i = InetAddress.getLocalHost();
i.getHostAddress();//IP
i.getAddress();//؟؟؟
// احصل على المعلومات المتعلقة بالكمبيوتر من خلال اسم الكمبيوتر؛
InetAddress i = InetAddress.getByName("Livingstone-PC");
// احصل على المعلومات المتعلقة بالمضيف من خلال اسم المجال
InetAddress ibaidu = InetAddress.getByName("www.baidu.com");
URL url = new URL("http://localhost:8080/demo.html");
url.getHost();
المقبس (العميل):
عندما يتم إنشاء الكائن، يمكنك الاتصال بالمضيف المحدد نظرًا لأن TCP موجه نحو الاتصال، عند إنشاء خدمة مأخذ التوصيل، يجب أن يكون الخادم موجودًا ويكون الاتصال ناجحًا ;
// أنشئ خدمة مأخذ التوصيل الخاصة بالعميل وحدد المضيف والمنفذ الهدف؛
المقبس s = مقبس جديد("cj-PC"، 10003);
// من أجل إرسال البيانات، يجب الحصول على دفق الإخراج في دفق المقبس؛
OutputStream out = s.getOutputStream();
//PrintWriter out = new PrintWriter(s.getOutputStream(),true);out.println("Hello");
out.write("hello".getBytes());
// تلقي رسالة الرد
InputStream in = s.getInputStream();
byte[] bufIn = new byte[1024];
int num = in.read(bufIn);
System.out.println(new String(bufIn, 0, num));
s.Close();// يتم تغليف كائن الدفق في المقبس ويغلق كائن الدفق تلقائيًا؛
مقبس الخادم (الخادم):
إنشاء خدمة مأخذ التوصيل من جانب الخادم، ServerSocket، والاستماع إلى المنفذ؛
احصل على كائن العميل المتصل من خلال طريقة قبول الكائن إذا لم يكن هناك اتصال، فسوف ينتظر (الحظر):
إذا أرسل العميل بيانات، فيجب على الخادم استخدام دفق القراءة لكائن العميل المقابل للحصول على البيانات المرسلة من قبل العميل؛
ServerSocket ss = new ServerSocket(10003);
//ServerSocket(int port,int backlog هو الحد الأقصى لعدد الاتصالات;
المقبس s = ss.accept();
InputStream in = s.getInputStream();
بايت[] buf = بايت جديد[2014];
int len = in.read(buf);
String rec = new String(buf, 0, len);
System.out.println(rec);
// أرسل رسالة مرة أخرى
OutputStream out = s.getOutputStream();
out.write("تم الاستلام".getBytes());
s.Close();// سيقوم الخادم بإغلاق العميل تلقائيًا؛
(1) العميل:
إنشاء خدمة مأخذ توصيل وتحديد المضيف والمنفذ للاتصال به؛
الحصول على دفق الإخراج في دفق المقبس، وكتابة البيانات في الدفق، وإرسالها إلى الخادم عبر الشبكة؛
الحصول على دفق الإدخال في دفق المقبس، والحصول على البيانات التي يغذيها الخادم، وإغلاق موارد العميل؛
DatagramSocket: إرسال جزء من البيانات النصية عبر إرسال UDP؛
يرسل:
// إنشاء خدمة UDP، وإنشاء كائن DatagramSocket وإعطاء رقم المنتج؛
DatagramSocket المقبس = new DatagramSocket(8888);
// تحديد البيانات وتغليفها في حزمة بيانات، DatagramPacket (يجب تحديد رقم منفذ الجهاز الوجهة)؛
byte[] buf = "udp أنا قادم".getBytes();
DatagramPacket dp = new DatagramPacket(buf, buf.length,
InetAddress.getByName("اسم الجهاز"), 10086);
// يرسل؛
المقبس.send(dp);
// إنهاء؛
المقبس. إغلاق ()؛
يستلم:
// تحديد خدمة udpsocket. عادةً ما تتم مراقبة المنفذ، والذي يحدد فعليًا المعرف الرقمي لتطبيق الشبكة المتلقية؛
DatagramSocket المقبس = new DatagramSocket(10086);
while (true) { // الغرض هو المراقبة المستمرة
بايت[] buf = بايت جديد[1024];
// تحديد حزمة البيانات لتخزين البيانات؛
DatagramPacket dp = new DatagramPacket(buf, buf.length);
// قم بتخزين البيانات المستلمة في حزمة البيانات من خلال طريقة الاستلام الخاصة بالخدمة؛
المقبس.receive(dp);// طريقة الحظر، عالقة هنا إذا لم تكن هناك بيانات؛
// الحصول على البيانات من خلال طريقة حزمة البيانات؛
String ip = dp.getAddress().getHostAddress();
بيانات السلسلة = سلسلة جديدة (dp.getData(), 0, dp.getLength());
منفذ int = dp.getPort();
}
المقبس s = new المقبس("Machine-Name"، 10005);
OutputStream out = s.getOutputStream();
FileInputStream fis = new FileInputStream("awf.jpg");
بايت[] buf = بايت جديد[1024];
إنت لين = 0;
بينما ((len = fis.read(buf)) != -1) {
out.write(buf, 0, len);
}
// توقف عن إرسال البيانات
s.shutdownOutput();
ServerSocket ss = new ServerSocket(10005); //ss.accept() الأسلوب له تأثير حظر؛
// يمكن إنشاء مؤشر ترابط منفصل لكل مقبس تم الحصول عليه بواسطة طريقة Accept () ؛