



//客户端程序及聊天室的图形用户界面
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
public class ChatTCPSocketJFrame extends JFrame implements ActionListener
{
private String name; //网名
private Socket socket; //TCP Socket对象
private JTextArea text_receiver; //显示对话内容的文本区
private JTextField text_sender; //输入发送内容的文本行
private JButton button_send,button_leave; //发送和离线按钮
private PrintWriter cout; //字符输出流对象
public ChatTCPSocketJFrame(String name, Socket socket) throws IOException//提供图形用户界面
{
super("聊天室 "+name+" "+InetAddress.getLocalHost()+" : "+socket.getLocalPort());
this.setBounds(320,240,400,240);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.text_receiver = new JTextArea();
this.text_receiver.setEditable(false); //文本区不可编辑
this.getContentPane().add(new JScrollPane(this.text_receiver));
JPanel panel = new JPanel();
this.getContentPane().add(panel,"South");
this.text_sender = new JTextField(16);
panel.add(this.text_sender);
button_send = new JButton("发送");
panel.add(button_send);
button_send.addActionListener(this);
button_leave = new JButton("离线");
panel.add(button_leave);
button_leave.addActionListener(this);
this.setVisible(true);
this.name = name;
this.socket = socket;
this.cout = new PrintWriter(socket.getOutputStream(),true);//获得Socket对象的输出流,立即flush
this.cout.println(name); //发送自己网名给对方
BufferedReader cin=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//获得Socket对象的输入流,创建字符输入流
String aline=cin.readLine(); //接收到对方网名
text_receiver.append("连接"+aline+"成功"+""); //显示对方发来的内容
aline= cin.readLine();
while (aline!=null && !aline.equals("bye")) //从输入流接收对方发来的字符串
{ //"bye"是约定的离线信息
text_receiver.append(aline+""); //显示对方发来的内容
aline= cin.readLine();
}
cin.close();
cout.close();
socket.close(); //关闭Socket连接
button_send.setEnabled(false);
button_leave.setEnabled(false);
}
public ChatTCPSocketJFrame(String name, String host, int port) throws IOException //客户端
{
this(name, new Socket(host, port)); //客户端向指定主机的端口发出TCP连接请求
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource()==button_send) //发送按钮
{
this.cout.println(name+" 说:"+text_sender.getText()); //通过流发送给对方
text_receiver.append("我说:"+text_sender.getText()+"");
text_sender.setText("");
}
if (e.getSource()==button_leave) //离线
{
text_receiver.append("我离线");
this.cout.println(name+"离线"+"bye"); //发送给对方离线约定
button_send.setEnabled(false);
button_leave.setEnabled(false);
}
}
public static void main(String args[]) throws IOException
{
new ChatTCPSocketJFrame("小蜜蜂", "127.0.0.1", 2001);
}
}
//服务端程序
import java.net.*;
import java.io.*;
public class ChatTCPServer
{
public ChatTCPServer(int port, String name) throws IOException //约定端口、网名
{ //本机IP地址和指定端口构成服务端的Socket
ServerSocket server = new ServerSocket(port); //ServerSocket提供TCP连接服务
Socket client = server.accept(); //等待接收客户端的连接申请
new ChatTCPSocketJFrame(name,client); //服务端的聊天室,图形用户界面同客户端
server.close();
}
public static void main(String args[]) throws IOException
{
new ChatTCPServer(2001, "花仙子"); //启动服务端,约定端口,指定网名
}
}
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:service@bkw.cn 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
38
秘书资格考试证书怎么补办?:秘书资格考试证书怎么补办?补办时需提交以下资料:(一)本人身份证原件及复印件一份;(二)大一寸免冠白底光面无花边相片1张;(三)登载证书遗失声明的报纸(须属国家认可公开发行)。登报纸内容必须包含以下内容:姓名,证书编号,级别,职业工种,声明遗失。
838播放2020-06-1263
秘书资格考试怎么报名?:秘书资格考试怎么报名?国家秘书职业资格考试(初级)报名流程:考前两个月到当地国家职业技能鉴定所报名。提交报名资料(学历证明工作证明、《秘书职业资格考试全国统一鉴定申报表》、身份证复印件、学历证复印件):考前一周领取准考证,参加全国统一考试,考场由各省职业鉴定中心组织安排。考试时间是在每年的5月和11月的第三个周末:考试结束后,45个工作日可登陆当地职业鉴定中心官网查询成绩。
1080播放2020-06-12101
秘书资格考试考核方式是什么?:秘书资格考试考核方式是什么?国家秘书职业资格证书由国家劳动和社会保障部推出。考试内容分秘书(涉外)、秘书(普通)两个种类,秘书(涉外)专业外语考核设英语、日语、俄语3个语种,报考人员可根据自己的专业语种,任选一种语言应试。考核方式:考生对标准化书面试卷上的问题在答题卡上作答。题型分为单选题、选择题两种题型:每段录像考15个知识点:考生对书面提出的工作任务进行书面回答:
1066播放2020-06-12
我想报网络编辑师,请问考网络编辑师证的流程和条件是什么?
aomupin·2019-11-04考网络编辑师证的流程和条件是什么?
感谢你曾经用我试爱·2019-11-03考网络编辑师证的流程
chaibankang·2019-11-02想学习linux网络编辑方面的东西,急需Linux网络编辑第2版pdf版的,谢谢分享
共度轻狂少年爱我可好·2019-11-02最近想考网络编辑考试,但是对网络编辑经验不了解,谁能告诉我一下?
biezeitou·2019-10-28我想要更好的理解Java网络编程,应该看什么书?
baojiusun·2019-10-27我想了解一下关于网络编辑它分了等级的吗?
aiquanqie·2019-10-27没经验能做网络编辑吗?朋友最近想了解一下关于编辑网络的考试
barongdiu·2019-10-24网络编辑它还分了等级的吗?求大佬的告知
biaohanga·2019-10-15网络编辑员的报考,我可以参加吗?我没有任何的经验。
binnouwang·2019-06-18
在外地读书,想问一下网络编辑的报名条件?看看我符合不
chanliucan·2020-05-29现在网络编辑是一个新兴职业,工作职责有哪些呢?
casunzhan·2020-05-29现在网络很发达了,看着网络编辑每天工作也不忙,想了解一下工作职责有哪些?
cengtingfou·2020-05-28本科毕业可以直接报考网络编辑师吗?
beitouqie·2020-05-28现在网络很发达,有一个新兴的职业叫网络编辑,想了解一下工作职责是什么?
caitaidiao·2020-05-27想考助理网络编辑师,不知道报考条件怎么样?
chanqiongdei·2020-05-27有朋友知道网络编辑的工作职责吗?
caicebei·2020-05-26现在是网络社会,想报名参加助理网络编辑考试,不知道需要满足哪些条件?
bengbaichuo·2020-05-26现在网络发达了有一个新兴职业叫网络编辑,平时工作职责有哪些呢?
bianshayang·2020-05-25有考友知道助理网络编辑师的报考条件吗?
bingxunre·2020-05-25
对于刚毕业的学生考了网络编辑好就业吗
帮考网校·2020-03-19如何成为一名优秀的网络编辑人员呢?
帮考网校·2020-03-24通过了网络编辑考试就业前景怎么样?
帮考网校·2020-03-24网络编辑员考试上半年报名马上就要结束了?
帮考网校·2020-03-24通知2020年网络编辑考试报考条件出来了
帮考网校·2020-03-30网络编辑考试是分不同等级的,看看都包含哪些等级吧!
帮考网校·2020-03-30重要通知2020年网络编辑上半年考试报名马上就要截止啦!
帮考网校·2020-03-30快来看2020年网络编辑考试时间已经公布啦!
帮考网校·2020-04-02重点关注2020年网络编辑考试报名条件出来啦!
帮考网校·2020-04-02准备参加网络编辑考试的考生好好了解一下它的等级划分吧!
帮考网校·2020-04-02
各位,我刚刚考完,我想了解一下就是成绩一般是在什么时候就可以查的啊?
canglunhuai·2019-10-27什么是网站的seo的优化啊,有大佬知道的吗?
bengchunwo·2019-10-27各位网络界的大神们,如何使用Ping命令来判断网络故障啊?
cangpianzhun·2019-10-27网络编辑分几个等级哦,有没有大佬知道的,谢谢你的帮助了,呵呵呵
caishanxin·2019-10-27各位今年的报考的时间是在什么时候啊?过了没有哦
baojiqie·2019-10-27我想要更好的理解Java网络编程,应该看什么书?
baojiusun·2019-10-27各位大佬们,我在备考,我想学Java,我应该看什么书比较好?
channvyo·2019-10-27各位,我想了解一下,关于这AD中如何在原理图表格中编辑文字
biezhuanren·2019-10-27大佬们,我想了解一下,网络编辑员的报考条件是什么?
biaojiameng·2019-10-27我想学网络编辑,我应该学什么啊?有没有大佬可以指点迷津的
alunheng·2019-10-27
01:06
加强和完善建筑劳务管理有哪些内容?2022-04-19
02:10
合同终止的情形有哪些?2022-04-19
00:58
建设项目环境噪声污染的防治有哪些?2022-04-19
02:48
建筑市场诚信行为的奖惩机制是什么?2022-04-19
06:50
合同权利义务不得转让的情形有哪些?2022-04-19

微信扫码关注公众号
获取更多考试热门资料