Java socket模拟聊天程序
2014-09-30 15:33
351 查看
根据TCP/IP协议,通过socket实现网络聊天,分为服务器端和客户端,一下是参考程序。
服务器端程序:
客户端程序:
package com.michael.contact;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws IOException {
String ServerIpAddress = "127.0.0.1";// 对方的IP
String words = "Hello";// 对方的话
String temp = null;
byte[] serverSay = new byte[1000];// 读取<1KB
InputStreamReader read = null;
int len = 0;
Socket s = null;
OutputStream outputstream = null;
InputStream inputstream = null;
// 取得你给他的IP
System.out.println("请输入对方的IP(默认发给自己):");
read = new InputStreamReader(System.in);
try {
temp = new BufferedReader(read).readLine();
if (!temp.equals(""))
ServerIpAddress = temp;
} catch (IOException e1) {
}
// 取得你各他的Message
System.out.println("请输入想对他(她)说的话----输入QUIT 退出!!:");
read = new InputStreamReader(System.in);
while (true) {
try {
temp = "Hello";
temp = new BufferedReader(read).readLine();
words = temp;
if (words.equals("quit"))
break;
temp = "客户端....." + words;
// 发起通信
s = new Socket(InetAddress.getByName(ServerIpAddress), 8888);// 套接字的IP地址和端口号
outputstream = s.getOutputStream();
inputstream = s.getInputStream();
outputstream.write(temp.getBytes("gbk"));// 向服务器发送消息
len = inputstream.read(serverSay);// 接受服务器消息
System.out.println( new String(serverSay, 0, len));// 客户端控制台显示服务器返回的信息
} catch (Exception e) {
} finally {
inputstream.close();
outputstream.close();
s.close();// 记住一定要关闭这些输入,输出流和套接字
}
}// end while
}
}
根据TCP/IP协议,通过socket实现网络聊天,分为服务器端和客户端,一下是参考程序。
服务器端程序:
package com.michael.contact; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String args[]) throws IOException { String reces = null; int len; Socket socket = null; OutputStream outputstream = null; InputStream inputstream = null; byte[] rece = new byte[1000]; try { ServerSocket serversocket = new ServerSocket(8888); // 服务器的套接字,端口为8888 while (true) { socket = serversocket.accept(); inputstream = socket.getInputStream();// 得到输入流 outputstream = socket.getOutputStream();// 得到输出流 len = inputstream.read(rece);// 接受客户端消息 if (len != 0) reces = new String(rece, 0, len); System.out.println(reces); BufferedReader bufferreader = new BufferedReader(new InputStreamReader(System.in)); outputstream.write(("服务器....." + bufferreader.readLine()).getBytes());// 返回给客户端的欢迎信息 } } catch (Exception e) { e.printStackTrace(); } finally { inputstream.close(); outputstream.close(); socket.close();// 记住一定要关闭这些输入,输出流和套接字 } } }
客户端程序:
package com.michael.contact;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws IOException {
String ServerIpAddress = "127.0.0.1";// 对方的IP
String words = "Hello";// 对方的话
String temp = null;
byte[] serverSay = new byte[1000];// 读取<1KB
InputStreamReader read = null;
int len = 0;
Socket s = null;
OutputStream outputstream = null;
InputStream inputstream = null;
// 取得你给他的IP
System.out.println("请输入对方的IP(默认发给自己):");
read = new InputStreamReader(System.in);
try {
temp = new BufferedReader(read).readLine();
if (!temp.equals(""))
ServerIpAddress = temp;
} catch (IOException e1) {
}
// 取得你各他的Message
System.out.println("请输入想对他(她)说的话----输入QUIT 退出!!:");
read = new InputStreamReader(System.in);
while (true) {
try {
temp = "Hello";
temp = new BufferedReader(read).readLine();
words = temp;
if (words.equals("quit"))
break;
temp = "客户端....." + words;
// 发起通信
s = new Socket(InetAddress.getByName(ServerIpAddress), 8888);// 套接字的IP地址和端口号
outputstream = s.getOutputStream();
inputstream = s.getInputStream();
outputstream.write(temp.getBytes("gbk"));// 向服务器发送消息
len = inputstream.read(serverSay);// 接受服务器消息
System.out.println( new String(serverSay, 0, len));// 客户端控制台显示服务器返回的信息
} catch (Exception e) {
} finally {
inputstream.close();
outputstream.close();
s.close();// 记住一定要关闭这些输入,输出流和套接字
}
}// end while
}
}
相关文章推荐
- [Java] Socket/ServerSocket 控制台简单聊天程序
- java_Socket通信_聊天程序
- 【java编程】Socket编程之UDP模拟简单聊天功能
- 详解基于java的Socket聊天程序――客户端(附demo)
- socket模拟聊天程序(1)-单客户端
- [Java] Socket/ServerSocket/Thread 控制台聊天程序--两人任意聊
- Java编程:使用Socket编写一个能多个人聊天的程序
- [JavaWeb基础] 024.Socket编程之简单的聊天程序
- java网络编程一:Socket用法,简单模拟一对一聊天
- 详解基于java的Socket聊天程序――服务端(附demo)
- java网络编程一:Socket用法,简单模拟一对一聊天
- JavaAWT简单Socket多人聊天程序(简单明了)
- java_Socket通信_聊天程序
- java网络编程一:Socket用法,简单模拟一对一聊天
- java 聊天程序 socket网络编程
- java网络编程一:Socket用法,简单模拟一对一聊天
- Socket编程之聊天程序 - 模拟Fins/ModBus协议通信过程
- java TCPSocket聊天小程序
- 【java学习记录】12.用Socket网络访问方法,实现简单的网络聊天程序
- Java 基于多客户端的ServerSocket—聊天服务器端,客户端Socket “操作文件”系统的程序拼接