JavaSE的有关网络编程的服务器与客户端的通信代码
2014-07-27 22:17
471 查看
这是我学习JavaSE标准版本以来,自己独立敲写的一个关于服务器和客户端的测试类,用于简单的通信,我坚信学习知识,就要按照自己的逻辑去敲写代码,虽然现在的知识还很淡薄,但是我希望每天的积累,都会让自己进步,所以坚持学好Java编程,是我最大的目标和梦想.如果有问题,希望能够多多指教,以后会多多写出自己想要表达的程序项目
//服务器端测试类
public class ServerSocketTest extends Thread {
public Socket client;
public static ArrayList<Socket> clientList= new ArrayList<Socket>();
public ServerSocketTest(Socket client) {// 构造器初始化客户端
this.client = client;
}
public void run() {
try {
InputStream in = client.getInputStream();
InputStreamReader isr = new InputStreamReader(in);
BufferedReader br = new BufferedReader(isr);
String msg = "";
InetAddress adress= client.getLocalAddress();
while ((msg = br.readLine()) != null) {
for(int i=0;i<clientList.size();i++){
Socket c=clientList.get(i);
OutputStream out= c.getOutputStream();
if(c!=client){
out.write((adress.getHostAddress()+"说:"+ msg+"\r\n").getBytes());
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(8888);
while (true) {
Socket client = server.accept();
ServerSocketTest.clientList.add(client);
ServerSocketTest st=new ServerSocketTest(client);
OutputStream out= client.getOutputStream();
out.write("欢迎进入我的世界!Welcome to the world !".getBytes());
st.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
//客户端测试类
public class SocketTest extends Thread {
public Socket client;
public SocketTest(Socket client) {
this.client = client;
}
public void run() {
try {
OutputStream out = client.getOutputStream();
InputStream in = client.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String str = "";
while ((str = br.readLine()) != null) {
System.out.println(str);
}
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
Socket client = new Socket("192.168.0.129", 8888);
SocketTest st = new SocketTest(client);
st.start();
OutputStream out = client.getOutputStream();
Scanner sc = new Scanner(System.in);
while (true) {
String msg = sc.nextLine();
out.write((msg+"\r\n").getBytes());
out.flush();
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//服务器端测试类
public class ServerSocketTest extends Thread {
public Socket client;
public static ArrayList<Socket> clientList= new ArrayList<Socket>();
public ServerSocketTest(Socket client) {// 构造器初始化客户端
this.client = client;
}
public void run() {
try {
InputStream in = client.getInputStream();
InputStreamReader isr = new InputStreamReader(in);
BufferedReader br = new BufferedReader(isr);
String msg = "";
InetAddress adress= client.getLocalAddress();
while ((msg = br.readLine()) != null) {
for(int i=0;i<clientList.size();i++){
Socket c=clientList.get(i);
OutputStream out= c.getOutputStream();
if(c!=client){
out.write((adress.getHostAddress()+"说:"+ msg+"\r\n").getBytes());
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(8888);
while (true) {
Socket client = server.accept();
ServerSocketTest.clientList.add(client);
ServerSocketTest st=new ServerSocketTest(client);
OutputStream out= client.getOutputStream();
out.write("欢迎进入我的世界!Welcome to the world !".getBytes());
st.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
//客户端测试类
public class SocketTest extends Thread {
public Socket client;
public SocketTest(Socket client) {
this.client = client;
}
public void run() {
try {
OutputStream out = client.getOutputStream();
InputStream in = client.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String str = "";
while ((str = br.readLine()) != null) {
System.out.println(str);
}
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
Socket client = new Socket("192.168.0.129", 8888);
SocketTest st = new SocketTest(client);
st.start();
OutputStream out = client.getOutputStream();
Scanner sc = new Scanner(System.in);
while (true) {
String msg = sc.nextLine();
out.write((msg+"\r\n").getBytes());
out.flush();
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
相关文章推荐
- Windows网络编程入门:简单的客户端和服务器通信程序调试
- Python网络编程之socket编程(一)--使用TCP和UDP客户端和服务器通信
- Windows网络编程入门:简单的客户端和服务器通信程序调试
- Windows网络编程入门:简单的客户端和服务器通信程序调试
- Linux高级网络编程网络通信客户端代码
- linux 网络编程:客户端与服务器通过TCP协议相互通信
- Windows网络编程入门:简单的客户端和服务器通信程序调试
- Linux下网络编程之自定义协议进行并发多客户端与服务器的通信(多进程处理并发)不足占用资源太多
- linux c之网络编程之TCP(服务器和和客户端基础通信)
- linux 网络编程:客户端与服务器通过TCP协议相互通信 + UDP
- Linux下网络socket编程——实现服务器(select)与多个客户端通信
- 【Linux网络编程实例】实例二:利用TCP协议进行客户端与服务器通信
- 网络编程:使用Socket实现简单的服务器和客户端的通信
- linux 网络编程:客户端与服务器通过TCP协议相互通信 + UDP
- 网络通信【 二】关于服务器和客户端编程
- Windows网络编程入门:简单的客户端和服务器通信程序调试
- java udp网络编程及实例代码,实现客户端和服务端通信
- Windows网络编程入门:简单的客户端和服务器通信程序调试
- Windows网络编程入门:简单的客户端和服务器通信程序调试
- Linux 网络编程实现TCP协议下的服务器客户端通信