Java socket模拟聊天程序
来源:互联网 发布:iwatch2必装软件 编辑:程序博客网 时间:2024/04/28 06:32
根据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); // 服务器的套接字,端口为8888while (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 } }
0 0
- Java socket模拟聊天程序
- java 多线程,socket 简单模拟聊天软件
- 小小的java socket聊天程序
- java 聊天程序 socket网络编程
- [Java] Socket/ServerSocket 控制台简单聊天程序
- Java Socket聊天程序核心代码讲解
- Java 基于socket thread 简单聊天程序
- Java基于Tcp的socket聊天程序
- java聊天程序 基于socket 包含MySQL
- JAVA中的Socket一对一聊天程序
- socket模拟聊天程序(1)-单客户端
- socket模拟聊天程序(2)-多客户端
- java网络编程一:Socket用法,简单模拟一对一聊天
- java网络编程一:Socket用法,简单模拟一对一聊天
- 【java编程】Socket编程之UDP模拟简单聊天功能
- java网络编程一:Socket用法,简单模拟一对一聊天
- java网络编程一:Socket用法,简单模拟一对一聊天
- linux socket聊天程序
- 排序算法,插入、快速、希尔、基数、归并排序的代码实现和效率分析
- Hibernate学习笔记2--Hibernate配置文件中的两个配置项
- 使用Html5的DeviceOrientation特性实现摇一摇功能
- 机房收费系统(5)-迟来的总结
- C++#include 采用尖括号和采用引号的区别
- Java socket模拟聊天程序
- iframe的兼容性问题——待补充
- 循环队列
- windows平台下安装linux虚拟机,宿主机与虚拟机ping不通,提示connect network is unreachable
- Python编码错误的解决办法SyntaxError: Non-ASCII character '\xe5' in file
- windows窗口程序框架解读
- 一路走来,其实我们都不是谁的谁
- myeclispe 中deploy时不能出现deploy location
- BAT巨头三角争逐,线下O2O谁更略胜一筹?