Java Socket通过UDP协议实现点对点文字聊天.

武星华 发布于 2011/06/21 10:32
阅读 2K+
收藏 2
package test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client {
	Socket client;

	PrintWriter pw;

	public Client() throws UnknownHostException, IOException {
		client = new Socket("127.0.0.1", 7777);
		pw = new PrintWriter(client.getOutputStream());
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		pw.write(br.readLine());
		pw.close();
		br.close();
	}

	public static void main(String[] args) {
		try {
			new Client();
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
package test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
	private Socket socket;
	private ServerSocket ss;
	public Server() throws IOException {
		ss = new ServerSocket(7777);
		while (true) {
			socket = ss.accept();
			BufferedReader br = new BufferedReader(new InputStreamReader(socket
					.getInputStream()));
			System.out.println("you input is : " + br.readLine());
			PrintWriter pw = new PrintWriter(socket.getOutputStream()); 
			pw.println("成功接收到消息");
		}
	}
	
	public static void main(String[] args) {
		try {
			new Server();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}        

额,这是2个类,client类和Server类,Client可以给Server发消息. 现在是Server不能给Client发,听大家的理由是Client类没有实现服务端的功能,现在请教大家怎么这2个类的代码应该怎么改,刚从学校毕业,网络编程懂得不多,希望各位大神可以给个详细点的代码,谢谢,感激不尽.在线等.

加载中
0
武星华
武星华

额,对不起啊..这个排版还是不怎么会..底下是问题..可是我不会取消代码段...所以排版还是有点问题.,对不起了小编.

 

请大神们不吝赐教.

0
小编辑
小编辑
可以先写文字在插入代码或者点击工具条的倒数第二个图标,切换到源码模式
0
芙蓉镇
芙蓉镇

client类中也要有从server端接收字节流的步骤啊,首先要从socket获得一个inputstream,你可以看看Socket.getInputStream()这个方法。

还有我觉得你的Server类可以再优化一下,加入一个工作线程池,由工作线程具体负责与client端通讯,而主线程负责接收Socket请求

0
武星华
武星华
越来越深奥了...那个线程池还一点不会了...现在就是想有个人给我改下代码吧...让程序能跑开,然后我再研究究竟是怎么实现的.
返回顶部
顶部