java实现简易局域网聊天功能

2025-05-29 0 104

本文实例为大家分享了java使用udp模式编写聊天程序的具体代码,供大家参考,具体内容如下

java代码:

?

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

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111
/*

使用udp模式,编写一个聊天程序

有发送和接收数据2部分,

一个线程接收,一个线程发送

由于发送和接收动作是不一致的,所以要使用2个run方法

而且这两个方法要封装到不同的类中

本程序忽略了部分异常的处理,也未加入ui组件

这样比较简洁

发送端口9998

接受端口9999

用的是局域网广播地址,所以自己发的消息自己也收到了

[示例]:简易控制台聊天程序

*/

import java.net.*;

import java.io.*;

class demo

{

public static void main(string[] args) throws exception

{

datagramsocket sendsocket = new datagramsocket(9998); //发送端

datagramsocket recesocket = new datagramsocket(9999); //接收端

new thread(new msgsend(sendsocket)).start(); //发送线程

new thread(new msgrece(recesocket)).start(); //接受线程

}

}

class msgsend implements runnable //发送

{

private datagramsocket dsock;

public msgsend(datagramsocket dsock)

{

this.dsock= dsock;

}

public void run()

{

bufferedreader bufr = new bufferedreader(new inputstreamreader(system.in));

string linestr = null;

try

{

while(true)

{

linestr = bufr.readline();

if(linestr!=null)

{

if(linestr.equals("over886"))

{

break;

}

else

{

byte[] databuf = linestr.getbytes();

datagrampacket datapack = //数据打包

new datagrampacket( databuf,

databuf.length,

inetaddress.getbyname("192.168.1.255"), //广播

9999 //目标端口

);

dsock.send(datapack);

}

}

}

bufr.close();

dsock.close();

}

catch(exception e)

{

throw new runtimeexception("发送失败!");

}

}

}

class msgrece implements runnable //接收

{

private datagramsocket dsock;

public msgrece(datagramsocket dsock)

{

this.dsock= dsock;

}

public void run()

{

try

{

while(true)

{

byte[] databuf = new byte[1024];

datagrampacket datapack = new datagrampacket(databuf,databuf.length);

dsock.receive(datapack); //将获取的数据保存到指定的数据包

string ip = datapack.getaddress().gethostaddress();

string data = new string(datapack.getdata(),0,datapack.getlength());

int port = datapack.getport();

system.out.println();

system.out.println("来自ip为 "+ip+" <对方端口>: "+port+" 的消息");

system.out.println(data);

}

}

catch(exception e)

{

throw new runtimeexception("接受失败!");

}

finally

{

dsock.close();

}

}

}

java实现简易局域网聊天功能

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

原文链接:http://xouou.iteye.com/blog/1356391

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 java实现简易局域网聊天功能 https://www.kuaiidc.com/112132.html

相关文章

发表评论
暂无评论