java实现socket通信

来源:互联网 发布:mac for ntfs破解版 编辑:程序博客网 时间:2024/05/09 19:52

java实现socket服务器与客户端的通信,此处只用示例代码说明


服务器端代码


主程序:

package netWork;import java.io.IOException;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class Service {public static int i = 1;public static void main(String[] args) throws IOException {// TODO Auto-generated method stubServerSocket serverSocket = new ServerSocket(5202);Socket socket = null;while(true){socket = serverSocket.accept();System.out.println("客户端"+(i++)+"连接成功");Runnable runnable = new MyRunnable(socket);thread thread = new Thread(runnable);thread.start();}}


多线程:

package netWork;import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;public class MyRunnable implements Runnable{private Socket socket;String [] advices={"多吃水果","少吃垃圾食品","早睡早起","多运动","多出去走走","出去玩玩啊"};public MyRunnable(Socket socket) {// TODO Auto-generated constructor stubthis.socket = socket;}@Overridepublic void run() {// TODO Auto-generated method stubString advice = getAdvice();try {InputStreamReader inputStreamReader = new InputStreamReader(socket.getInputStream(),"UTF-8");BufferedReader bufferedInputStream = new BufferedReader(inputStreamReader);PrintWriter printWriter = new PrintWriter(socket.getOutputStream());//while(true){String mString = bufferedInputStream.readLine();System.out.println("这是来自客户端信息: "+mString);printWriter.println("这是来自服务器的信息: "+advice);printWriter.flush();//}catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {socket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}private String getAdvice() {// TODO Auto-generated method stubint random = (int)(Math.random()*advices.length);return advices[random];}}


客户端代码

package com.myfirstprac;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.Socket;import java.net.UnknownHostException;public class Cdateinfo {public void go() throws UnknownHostException, IOException {Socket socket = new Socket("127.0.0.1", 5202);PrintWriter printWriter = new PrintWriter(socket.getOutputStream());InputStreamReader inputStreamReader = new InputStreamReader(socket.getInputStream(),"UTF-8");BufferedReader bufferedReader = new BufferedReader(inputStreamReader);printWriter.println("hh,我是客户端");printWriter.flush();String msg = bufferedReader.readLine();System.out.println(msg);printWriter.close();socket.close();}public static void main(String[] args) throws UnknownHostException, IOException {// TODO Auto-generated method stubCdateinfo cdateinfo = new Cdateinfo();cdateinfo.go();}}

0 0
原创粉丝点击