gpt4 book ai didi

java网络通信技术之简单聊天小程序

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章java网络通信技术之简单聊天小程序由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例为大家分享了java实现简单聊天小程序的具体代码,供大家参考,具体内容如下 。

再学习完java的通信技术后,做了一个简单的窗体聊天程序。程序非常简单,主要目的是当练习巩固自己所学的东西,在这里写出来记录以下。下面直接上代码.

首先是服务端代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package chattwopackage;
 
import java.io.*;
import java.net.*;
 
public class chattwoserver {
 
  public chattwoserver( int port,string name) throws ioexception
  {
  serversocket server= new serversocket(port); //创建seversocket对象,提供tcp连接服务。指定端口port,等待tcp连接。
  system.out.print( "正在等待连接,请勿操作!" );
  socket client=server.accept(); //创建socket对象,它等待接收客户端的连接。
  new chattwoclient(name,client); //实现图形界面。
  server.close();
  }
 
  public static void main(string[] args) throws ioexception {
  new chattwoserver( 2001 , "sq" );
 
  }
 
}

然后是客户端的代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package chattwopackage;
 
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.io.*;
 
public class chattwoclient extends jframe implements actionlistener {
  private string name;
  private jtextarea text_re;
  private jtextfield text_se;
  private printwriter cout;
  private jbutton buttons[];
  public chattwoclient(string name,socket socket) throws ioexception
  {
  super ( "我:" +name+inetaddress.getlocalhost().gethostaddress()+ ":" +socket.getlocalport());
  this .setbounds( 320 , 240 , 400 , 240 );
  this .text_re= new jtextarea();
  this .text_re.seteditable( false );
  this .getcontentpane().add( new jscrollpane( this .text_re));
 
  jtoolbar toolbar= new jtoolbar();
  this .getcontentpane().add(toolbar, "south" );
  toolbar.add( this .text_se= new jtextfield( 30 ));
  buttons= new jbutton[ 2 ];
  buttons[ 0 ]= new jbutton( "发送" );
  buttons[ 1 ]= new jbutton( "下线" );
  toolbar.add(buttons[ 0 ]);
  toolbar.add(buttons[ 1 ]);
  buttons[ 0 ].addactionlistener( this );
  buttons[ 1 ].addactionlistener( this ); //给按钮添加事件监听,委托当前对象处理
  this .setvisible( true );
  this .name=name;
  this .cout= new printwriter(socket.getoutputstream(), true ); //获得socket输出流
  this .cout.println(name);
  bufferedreader br= new bufferedreader( new inputstreamreader(socket.getinputstream())); //将socket的字节输入流转换为字符流,默认gbk字符集,再创建缓冲字符输入流
         string line= "连接" +br.readline()+ "成功" ;
         while (line!= null &&!line.endswith( "bye" ))
  {
   text_re.append(line+ "\r\n" );
   line=br.readline();
  } //读取对方发送的内容并显示,直到内容为为空或对方下线
  br.close();
  this .cout.close();
  socket.close();
  buttons[ 0 ].setenabled( false );
  buttons[ 1 ].setenabled( false );
  }
  public chattwoclient(string name,string host, int port) throws ioexception
  {
  this (name, new socket(host,port)); //调用另一个构造方法
  }
  public void actionperformed(actionevent ev)
  {
  if (ev.getactioncommand().equals( "发送" ))
  {
   this .cout.println(name+ ":" +text_se.gettext());
   text_re.append( "我:" +text_se.gettext()+ "\n" );
   text_se.settext( "" );
  } //按下发送按钮后,将内容发出,并更新自己聊天框的内容
  if (ev.getactioncommand().equals( "下线" ))
  {
   text_re.append( "你已下线\n" );
   this .cout.println(name+ "离线\n" + "bye\n" );
   buttons[ 0 ].setenabled( false );
   buttons[ 1 ].setenabled( false );
  } //下线按钮按下后,发送bye作为下线标记
  }
 
 
  public static void main(string[] args) throws ioexception {
  new chattwoclient( "mxl" , "127.0.0.1" , 2001 ); //ip地址和端口
 
  }
 
}

运行效果:

java网络通信技术之简单聊天小程序

说明:

1.两台计算机一台作为服务端,作为服务端的计算机需要有两个代码。首先运行服务端的代码,等待客户端机器连接,客户端运行客户端代码后,提示连接成功。就可以发送信息了.

2.运行代码前需要将ip地址改为自己计算机当前的ip地址(modem、isdn、adsl、有线宽频、小区宽频等方式上网的计算机,每次上网所分配到的ip地址都不相同,这称为动态ip地址)。如果要用一台计算机充当客户端和服务端,就将ip地址写为:127.0.0.1(127.0.0.1是回送地址,指本地机,一般用来测试使用)。先运行服务端代码,再运行客户端代码即可.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:https://blog.csdn.net/xlantian/article/details/80441216 。

最后此篇关于java网络通信技术之简单聊天小程序的文章就讲到这里了,如果你想了解更多关于java网络通信技术之简单聊天小程序的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com