java Socket编程(二)
来源:互联网 发布:mac pro 2016 尺寸 编辑:程序博客网 时间:2024/05/20 18:01
下面的程序实现通过客户端向服务器端发送输入的消息,服务器端接收消息进行打印。
服务器端程序
package com.robert.view;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;public class ServerClient {ServerSocket server = null;Socket socket = null;InputStream inputStream = null;BufferedInputStream bis = null;DataInputStream dis = null;OutputStream outputStream = null;BufferedOutputStream bos = null;DataOutputStream dos = null;public static void main(String[] args) {ServerClient serverClient = new ServerClient();serverClient.communicate();}public void communicate() {try {server = new ServerSocket(9999);while (true) {socket = server.accept();Runnable threadHandler = new ThreadHandler(socket);Thread thread = new Thread(threadHandler);thread.start();}} catch (IOException e) {e.printStackTrace();}}class ThreadHandler implements Runnable {private Socket socket;public ThreadHandler(Socket socket) {this.socket = socket;}@Overridepublic void run() {try {String showInfo = "";while (!"exit".equals(showInfo)) {inputStream = socket.getInputStream();bis = new BufferedInputStream(inputStream);dis = new DataInputStream(bis);showInfo = dis.readUTF();System.out.println(showInfo);}} catch (IOException e) {e.printStackTrace();}}}}
客户端程序
package com.robert.view;import java.io.BufferedOutputStream;import java.io.DataOutputStream;import java.io.IOException;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;import java.net.UnknownHostException;import java.util.Scanner;public class CustomerClient {OutputStream outputStream = null;BufferedOutputStream bos = null;DataOutputStream dos = null;public static void main(String[] args) {CustomerClient customerClient = new CustomerClient();customerClient.communication();}public void communication() {try {Socket socket = new Socket("localhost", 9999);Runnable threadHandler = new ThreadHandler(socket);Thread thread = new Thread(threadHandler);thread.start();} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}class ThreadHandler implements Runnable {Socket socket = null;public ThreadHandler(Socket socket) {this.socket = socket;}@Overridepublic void run() {try {String input = "";while (!"exit".equals(input)) {outputStream = socket.getOutputStream();bos = new BufferedOutputStream(outputStream);dos = new DataOutputStream(bos);Scanner scanner = new Scanner(System.in);input = scanner.nextLine();dos.writeUTF(input);dos.flush();}} catch (IOException e) {e.printStackTrace();}}}}
- Java Socket编程(二)
- Java Socket编程(二)
- Java Socket编程(二)
- java Socket编程(二)
- Java Socket编程(二)
- Java socket 编程(二)
- Java Socket编程(二)Socket基础
- Java Socket编程(二)-3
- Java Socket编程(二)-2
- java socket编程之聊天室(二)
- Java Socket网络编程(二)
- java网络socket编程(二)之Socket客户端
- Java Socket编程之二
- Java Socket网络编程二
- Java Socket网络编程二
- socket编程(二)
- socket编程(二)
- Socket 编程(二)
- struts2的Action传参总结
- dedecms获得某篇文章内容的几种方法
- 网站中痕迹保留的实现
- gprs 自动拨号 wince ppc
- 多线程问题cannot convert parameter 3 from 'unsigned long (void *)' to 'unsigned long (__stdcall *
- java Socket编程(二)
- overload和override的区别
- 可通过 @font-face 使用
- C++ 第十三周报告1
- 设计模式学习
- Python操作Word、EXCEL,ACCESS
- C++ 第十三周报告2
- C++ 第十四周报告1--《用递归的方法求和 》
- Sql Server中如何取得刚刚插入的自增长的id值