java实现Socket编程实例代码
发布时间:2020-12-14 23:50:54 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 服务器端 /** * @author GUXIA */import java.io.BufferedReader;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.I
|
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考
服务器端
/**
* @author GUXIA
*/
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class ChatServer {
public static void main(String[] args) {
try {
//创建服务器端套接字,接受来自客户端的连接请求
ServerSocket ss=new ServerSocket(9999);
Socket s=ss.accept();
//获取客户端套接字的输出流
OutputStream os=s.getOutputStream();
DataOutputStream dos=new DataOutputStream(os);
//获取客户端输入流
InputStream is=s.getInputStream();
DataInputStream dis=new DataInputStream(is);
//创建字符输入流接受键盘输入
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
String message;
while(true){
//获取客户端输入流,并打印在屏幕上,如果客户端说的是“再见”,退出
message=dis.readUTF();
System.out.println("客户端:"+message);
if(message.equals("再见"))
break;
//读取键盘输入并写入到输出流(客户端的输入流)
message=br.readLine();
dos.writeUTF(message);
}
dis.close();
dos.close();
ss.close();
s.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
客户端: import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
public class ChatClient {
public static void main(String[] args) {
try {
//创建客户端套接字
Socket sc=new Socket("localhost",9999);
//获取套接字输入流
InputStream is=sc.getInputStream();
DataInputStream dis=new DataInputStream(is);
//获取套接字输出流
OutputStream os=sc.getOutputStream();
DataOutputStream dos=new DataOutputStream(os);
//创建字符输入流接受键盘输入
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
//聊天
String message;
while(true){
//读取键盘输入的字符,写到客户端输出流
message=br.readLine();
dos.writeUTF(message);
if(message.equals("再见"))
break;
//读取服务器端的数据并打印到屏幕上
message=dis.readUTF();
System.out.println("服务器:"+message);
}
dis.close();
dos.close();
sc.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- OpenMP中预先分配的私有std :: vector并行化为C中的循环
- Java Swing:我可以设置一个不需要按alt的按钮助记符吗?
- java – Maven编译死于“杀死”
- java – 用鼠标悬停触发JXCollapsiblePane
- java – ILazyContentProvider更新每个viewer.setItemCount
- java – 为什么这个嵌套的ArrayList代码抛出异常?
- hdu 2838 Cow Sorting 树状数组求所有比x小的数的个数
- JPA暂时信息在创建时丢失
- Java多线程中ReentrantLock与Condition详解
- 在哪里下载JRockit for Java 1.5
