java简单聊天小程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

网络编程java简单聊天小程序[下次修改成多线程的,这个必须等待对方输入结束,有机会修改成可视化窗口]

By 刘汪洋

写入正确的ip地址即可正常用当然目前只停留在命令行界面

还没有写成可视化窗口界面

运行时请带上参数

如java TransServer 张三

Java TransClient 李四

( 和刘正南在局域网试验的截图成功

这是修改后的

加上了姓名!

)

(修改前的截图)

代码:

客户端:

package com.baidu.chat;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader; import java.io.PrintWriter;

import .Socket;

import .UnknownHostException;

// 简单聊天小程序客户端

public class TransClient {

public static void main(String[] args)

{

if(args[0]==null)

args[0] = "他";

startClient(args[0]);

}

private static void startClient(String name)

{

Socket sk = null;

BufferedReader bufr = null;

try {

sk = new Socket("127.0.0.1",10000);// 1 创建 socket服务

bufr = new BufferedReader(new InputStreamReader(System.in));// 2 获取录入键盘

PrintWriter out = new PrintWriter(sk.getOutputStream(),true);// 3 获取输出流true表示自动刷新

BufferedReader bufIn = new BufferedReader(new

InputStreamReader(sk.getInputStream()));// 4 获取输入流

// 5 发送获取

String text_send = "";

String text_get = "";

String ServerName = "";

System.out.print("聊天已开启..."+"\r\n"+"我说:");

out.println(name);//第一次将自己姓名发给 ServerName = bufIn.readLine();

while((text_send= bufr.readLine())!=null)

{

out.println(text_send);//将我说的话发给服务端

text_get = bufIn.readLine();//读取服务端发来的文本 System.out.println(text_get);

if(text_send.equals("886"))

{

sk.shutdownInput();

break;

} else if (text_get.equals(ServerName+"说:886")) {

break;

}else{

System.out.print("我说:");

}

}

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}finally{

try {

bufr.close();

sk.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

服务端

package com.baidu.chat;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader; import java.io.PrintWriter;

import .ServerSocket;

import .Socket;

import java.util.Scanner;

//简单聊天小程序服务端

public class TransServer {

public static void main(String[] args)

{

startServer(args[0]);

}

private static void startServer(String serverName)

{

ServerSocket ss = null;

Socket sk =null;

Scanner in = null;

try {

ss = new ServerSocket (10000);// 创建服务端

System.out.println("Server started");

sk = ss.accept();// 获取客户端socket

BufferedReader bufIn = new BufferedReader(new

InputStreamReader(sk.getInputStream()));//获取客户端输入流

PrintWriter bufOut = new PrintWriter(sk.getOutputStream(),true);//获取客户端输出流

in = new Scanner(System.in);

String ip = "";

ip = sk.getInetAddress().getHostAddress();

System.out.println(ip+"is connecting");

String text_get = "";//获取的字符串

String text_send = "";//返回的字符串

String userName = "";

userName =bufIn.readLine();

bufOut.println(serverName);

while((text_get = bufIn.readLine())!= null)

{

System.out.println(userName+"说:"+text_get);// 获取客户端发来的文本输出到控制台上

相关文档
最新文档