好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Java网络编程之TCP程序设计

本文实例为大家分享了java网络编程tcp程序设计的具体代码,供大家参考,具体内容如下

[1] tcp编程的主要步骤

客户端(client):

1.创建socket对象,构造方法的形参列表中需要inetaddress类对象和int型值,用来指明对方的 ip地址和端口号 。

2.通过socket对象的 getoutputstream()方法 返回outputstream抽象类子类的一个对象,用来发送输出流。

3.通过输出流的 write方法 输出具体的信息。

4. 关闭 相应的流和socket对象。

服务端(server):

1.创建 serversocket 类的对象,在构造器中指明端口号。

2.调用serversocket类对象的 accept()方法 ,返回一个socket类的实例。

3.通过socket实例的 getinputstream()方法 获取一个输入流,用来接收来自客户端的信息。

4.利用输入流接收数据,并处理数据。

5. 关闭 相应的流、socket对象、serversocket对象。

[2] java源程序 ( 注意:在测试时先开启服务端方法server(),再开启客户端方法client() )

?

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

package pack01;

 

import java.io.*;

import java.net.*;

import org.junit.test;

 

public class testnet1 {

 

  @test //***********************客户端测试方法***********************

  public void client() {

  

   socket socket = null ; //建立客户端网络套接字

   outputstream socket_os = null ; //客户端输出流

  

   try {

    //1.获取本机环路地址

    inetaddress inet = inetaddress.getbyname( "127.0.0.1" );

   

    //2.创建socket对象

    socket = new socket(inet, 10000 );

   

    //3.获取输出流

    socket_os = socket.getoutputstream();

   

    //4.客户端输出信息

    socket_os.write( "客户端发送信息" .getbytes() );

   

   } catch (ioexception e) {

    e.printstacktrace();

   

   } finally {

   

    try { //关闭输出流

     socket_os.close();

    } catch (ioexception e) {

     e.printstacktrace();

    }

   

    try { //关闭客户端套接字

     socket.close();

    } catch (ioexception e) {

     e.printstacktrace();

    }

   }

  }

 

  @test //***********************服务端测试方法***********************

  public void server() {

  

   serversocket sersocket = null ;

   socket socket = null ;

   inputstream socket_is = null ;

  

   try {

    sersocket = new serversocket( 10000 );

    socket = sersocket.accept(); //获取服务端套接字

    socket_is = socket.getinputstream(); //获取输入流

   

    byte [] b = new byte [ 100 ]; //用于接收信息的字节数组

    int len;

    stringbuffer sb = new stringbuffer();

   

    while ( (len = socket_is.read(b)) != - 1 ) {

     sb.append( new string(b, 0 ,len) ); //将字节信息连续保存在buffer数组里

    }

    system.out.println( "来自" + socket.getinetaddress().gethostname() + "的信息:" );

    system.out.println( sb );

   

   } catch (ioexception e) {

    e.printstacktrace();

   

   } finally {

   

    try { //关闭输入流

     socket_is.close();

    } catch (ioexception e) {

     e.printstacktrace();

    }

   

    try { //关闭socket对象

     socket.close();

    } catch (ioexception e) {

     e.printstacktrace();

    }

   

    try { //关闭serversocket对象

     sersocket.close();

    } catch (ioexception e) {

     e.printstacktrace();

    }

   }

  }

 

}

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

原文链接:https://www.cnblogs.com/EarthPioneer/p/9450280.html

查看更多关于Java网络编程之TCP程序设计的详细内容...

  阅读:47次