您的位置:首页 > 编程语言 > Java开发

java_Socket通信_聊天程序

2013-08-15 18:50 309 查看
package myfistsocket;

/*一个作为Server*/

import java.io.*; import java.net.*;

class MynewServer {

public static void main(String[] args) throws IOException {

ServerSocket s = new ServerSocket(6666);

System.out.println("服务器端------监听中....."); Socket socket = s.accept();

System.out.println("开始:" + socket);

GetMessage gm = new GetMessage(socket); SendMessage sm = new SendMessage(socket);

Thread gt = new Thread(gm); Thread st = new Thread(sm);

gt.start(); st.start(); } }

// 接收消息

class GetMessage implements Runnable {

BufferedReader in;

public GetMessage(Socket socket) {

try {

in = new BufferedReader(new

InputStreamReader(socket.getInputStream())); }

catch (IOException e) {

e.printStackTrace();

} }

public void run() {

String str = "";

while (true) {

try {

str = in.readLine(); }

catch (IOException e) {

e.printStackTrace(); }

if (str.equals("q")) {

break; }

System.out.print("客户端回应说:" + str); } } }

// 发送消息

class SendMessage implements Runnable {

PrintWriter out; BufferedReader is;

public SendMessage(Socket socket) throws IOException {

out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true); is = new BufferedReader(new InputStreamReader(System.in)); }

public void run() {

String input = new String();

while (true) {

try {

input = is.readLine().trim(); }

catch (IOException e) {

e.printStackTrace(); }

out.println(input);

System.out.print("服务器说:"); out.flush(); } } }

package myfistsocket;

/*一个作为Client*/ import java.io.*; import java.net.*;

public class MynewClient {

public static void main(String[] args) throws IOException {

InetAddress addr = InetAddress.getByName("127.0.0.1");

Socket socket = new Socket(addr, 6666);

System.out.println("客户端发出socket=" + socket);

CGetMessage gm = new CGetMessage(socket); CSendMessage sm = new CSendMessage(socket);

Thread gt = new Thread(gm); Thread st = new Thread(sm);

gt.start(); st.start(); } }

// 接收消息

class CGetMessage implements Runnable {

private Socket socket; BufferedReader in;

public CGetMessage(Socket socket) {

this.socket = socket;

}

public void run()

{

BufferedReader in; String str = ""; while (true) {

try {

in = new BufferedReader(new InputStreamReader(socket.getInputStream())); str = in.readLine(); }

catch (IOException e) {

e.printStackTrace(); }

System.out.println("服务器回应说:" + str); } } }

// 发送消息

class CSendMessage implements Runnable {

PrintWriter out; BufferedReader is;

public CSendMessage(Socket socket) throws IOException {

out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true); is = new BufferedReader(new InputStreamReader(System.in)); }

public void run() {

String input = new String();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: