java Tcp通信客戶端與服務(wù)器端實(shí)例
本文實(shí)例講述了java Tcp通信客戶端與服務(wù)器端。分享給大家供大家參考,具體如下:
由服務(wù)器端發(fā)送數(shù)據(jù)
服務(wù)器端:
import java.io.*;
import java.net.*;
public class TestSocket {
public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(8888);
while(true) {
Socket s = ss.accept();
OutputStream os = s.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
dos.writeUTF("hello" + s.getInetAddress() + "port" + s.getPort() + "beybye");
dos.close();
// os.flush();
os.close();
// s.close();
}
} catch (IOException e) {
e.printStackTrace();
System.out.println("there is a wrong");
}
}
}
用戶端:
import java.io.*;
import java.net.*;
public class TestClient {
public static void main(String[] args){
try {
Socket s = new Socket("127.0.0.1",8888);
DataInputStream dis = new DataInputStream(s.getInputStream());
System.out.println(dis.readUTF());
s.close();
dis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
無論是客戶端還是服務(wù)器端都可以收發(fā)數(shù)據(jù)。
交互型
用戶端
import java.io.*;
import java.net.*;
public class TestClient2 {
public static void main(String[] args){
try {
Socket s = new Socket("127.0.0.1",8886);
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
DataInputStream dis = new DataInputStream(s.getInputStream());
System.out.println(dis.readUTF());
dos.writeUTF("hey");
String str = null;
if((str = dis.readUTF()) != null) {
System.out.println(str);
}
s.close();
dis.close();
dos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
服務(wù)器端:
public class TestServer2 {
public static void main(String[] args) {
InputStream in = null;
OutputStream out = null;
try {
ServerSocket ss = new ServerSocket(8886);
while(true) {
Socket s = ss.accept();
in = s.getInputStream();
out = s.getOutputStream();
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
DataInputStream dis = new DataInputStream(s.getInputStream());
String str = null;
if((str = dis.readUTF() )!= null) {
System.out.println(str);
System.out.println("form " + s.getInetAddress());
System.out.println("port " + s.getPort());
// dos.writeUTF("hello" + s.getInetAddress() + "port" + s.getPort() + "beybye");
}
dos.writeUTF("hi hello");
dis.close();
dos.close();
s.close();
}
} catch (IOException e) {
e.printStackTrace();
System.out.println("there is a wrong");
}
}
}
更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java Socket編程技巧總結(jié)》、《Java文件與目錄操作技巧匯總》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
梳理總結(jié)Java?static關(guān)鍵字的方法作用
這篇文章主要介紹了梳理總結(jié)Java?static關(guān)鍵字的方法作用,?static?關(guān)鍵字可以用來修飾的成員變量和成員方法,被修飾的成員是屬于類的,而不是單單是屬于某個對象的2022-06-06
java通過控制鼠標(biāo)實(shí)現(xiàn)屏幕廣播的方法
這篇文章主要介紹了java通過控制鼠標(biāo)實(shí)現(xiàn)屏幕廣播的方法,針對前面一篇Java屏幕共享功能進(jìn)行了改進(jìn),實(shí)現(xiàn)了鼠標(biāo)控制功能,具有一定的實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12
Java?SE循環(huán)一些基本練習(xí)題總結(jié)
循環(huán)語句可以在滿足循環(huán)條件的情況下,反復(fù)執(zhí)行某一段代碼,這段被重復(fù)執(zhí)行的代碼被稱為循環(huán)體語句,下面這篇文章主要給大家總結(jié)介紹了關(guān)于Java?SE循環(huán)一些基本練習(xí)題,需要的朋友可以參考下2024-03-03
Spring中的注解@Value("#{}")與@Value("${}")的區(qū)別
這篇文章主要介紹了Spring中的注解@Value(“#{}“)與@Value(“${}“)的區(qū)別到底是什么,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06

