Java:网络编程值TCP的使用

演示TCP传输

1.Tcp分客户端和服务端

2.客服端对应的对象是scoket

服务端对应的对象是serverscoket

客户端:

通过查阅scoket对象,发现在建立对象时,就可以连接指定的主机。

因为tcp是面向连接的,所以在建立scoket服务时,就要有服务端存在,并连接成功,形成通路后,在该通道进行数据的传输。

需求:给服务端发送一个文本数据

步骤:

1.创建Socket服务并指定要连接的主机和端口。可以采用构造方法Socket(String host, int port)或对象方法connect(SocketAddress endpoint)

2.获取Sockett中的输出流,用来发送数据。方法是OutputStream getOutputStream()

3.关闭客户端流。

//例子如下:

import java.net.*;
import java.io.*;
class TcpClient
{
    public static void main(String[] args)throws Exception
    {
      //创建客户端的Socket服务,指定目的主机和端口
      Socket s = new Socket("192.168.1.105",8888);

      //为了发送数据,应该获取Socket中的输出流,
      OutputStream out = s.getOutputStream();

      out.write("tcp is coming!".getBytes());

      //关闭客户端流
      s.close();
    }
}

需求:定义端点接收数据,并打印在控制台上。

服务端:

1.建立服务端的Socket服务,构造函数ServerScoket(int port),并监听一个端口

2.获取连接过来的客服端对象,方法Socket accept() ,这个方法是阻塞式的,没有连接就等。

3.如果客服端发送过来数据,那么服务端要使用对应的客服端对象,并采用该客服端的读取流对象来读取发过来的数据。并打印在控制台。

4.关闭服务端(可选操作)

//例子如下:

class TcpServer
{
    public static void main(String[] args)throws Exception
    {
        //建立服务端的Socket服务,并监听一个端口
        ServerSocket ss = new ServerSocket(8888);

        //通过accept方法获取连接过来的客服端对象
        Socket s = ss.accept();
        String IP = s.getInetAddress().getHostAddress();
        System.out.println(IP+"...connected!");        

        //获取客户端发送给来的数据,服务端要使用客服端对象的读取流类读取数据。方法InputStream getInputStream()
        InputStream in = s.getInputStream();

        byte[] buf = new byte[1024];

        int len = in.read(buf);

        System.out.println(new String(buf,0,len));

        s.close();//关闭客户端

        ss.close();//关闭服务端(可选操作)
    }
}
时间: 2024-11-03 01:34:31

Java:网络编程值TCP的使用的相关文章

Java网络编程(tcp在服务器上应用多线程)

package org.tcp; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.Socket; public class EchoThread implements Runnable { private Socket client = null; public EchoThread(Socket client){ this.c

java 网络编程 UDP TCP

网络编程 网络编程主要用于解决计算机与计算机(手机.平板..)之间的数据传输问题. 网络编程: 不需要基于html页面就可以达到数据之间的传输. 比如: feiQ , QQ , 微信....网页编程: 就是要基于html页面的基础上进行数据的交互的. 比如: 珍爱网. oa(办公自动化). 高考的报告系统... 计算机网络: 分布在不同地域 的计算机通过外部设备链接起来达到了消息互通.资源共享的效果就称作为一个计算机网络.网络通讯的三要素:    1. IP    2. 端口号.    3. 协

java 网络编程(Socket) TCP/UDP 总结案例

网络编程:关注的是底层的数据传输 网页编程:数据的展示 1.基本概念 一.网络:将不同的计算机连接在一起局域网 城域网 互联网 二.地址:Ip地址确定网络上的绝对的地址位置   房子的地址 三.端口号(相当于房门):区分计算机上的软件 相当于房门两个字节0~65535 共65536个 1. 同一个协议下,端口号不能重复,不同的协议下可以重复 2. 1024以下的端口不要使用 80-->http 21-->ftp 四.资源定位 URL 统一资源定位 URI:统一资源 五.数据的传输 1. 协议:

Java网络编程(TCP/UDP)

首先我们先了解一下计算机网络的基本知识. 什么是网络? 将不同区域的计算机连接到一起.按照区域的大小可分为局域网,城域网,广域网(互联网). 地址即IP地址,确定在网络上的一个绝对地址. 端口号:区分计算机上的软件, 占用两个字节 ,端口号范围为: 0-65535, 一共65536个端口号. 1. 在同一个协议下端口号不能重复,不同的协议可以重复 2. 1024以下的端口号尽量不要使用.有可能已被占用,如80–http 21–ftp **资源定位:**URL 统一资源定位符 URI:统一资源 数

Java 网络编程 之 TCP协议

TCP协议 (服务器端程先启动,等待客户端连接) TCP协议是面向连接的通信协议,即在传输数据前先在发送端和接收端建立逻辑连接,然后再传输数据 保证传输数据的全性安,文件数据不易丢失 在JDK中提供了两个类用于实现TCP程序,一个是ServerSocket类,用于表示服务器端,一个是Socket类,用于表示客户端. 首先创建代表服务器端的ServerSocket对象,并等待客户端的连接, 然后创建代表客户端的Socket对象向服务器端发出连接请求,服务器端响应请求,客户端再次向服务器端发送确认信

java网络编程(4)——Tcp

Tcp相对于Udp就是面向连接的协议,最主要的特点要建立连接之后才能通信,客户端用Socket需要指点地址与端口,服务端用ServeSocket,只需指点监听某个端口,因为是面向连接,所以服务器端一定要先运行起来,然后客户端就可以通过地址和端口找到我们的服务端,建立连接之后就可以通信! 首先实现最简单的服务端,客户端通信的一个小例子 客户端: package com.seven.tcp; import java.io.OutputStream; import java.net.Socket; p

Java 网络编程--------------------基于TCP/IP(加入多线程)

1.服务器类: package com.serversocket; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Server_02 { //定义保存所有Socket的ArrayList,并将其

java网络编程socket\server\TCP笔记(转)

java网络编程socket\server\TCP笔记(转) 2012-12-14 08:30:04|  分类: Socket |  标签:java  |举报|字号 订阅 1 TCP的开销 a  连接协商三次握手,c->syn->s,s->syn ack->c, c->ack->s b  关闭协商四次握手,c->fin->s, s->ack-c,s->fin->c,c->ack->s c  保持数据有序,响应确认等计算开销 d

用java网络编程中的TCP方式上传文本文件及出现的小问题

自己今天刚学java网络编程中的TCP传输,要用TCP传输文件时,自己也是遇到了一些问题,抽空把它整理了一下,供自己以后参考使用. 首先在这个程序中,我用一个客户端,一个服务端,从客户端上传一个文本文件给服务端,服务端接收数据并显示“上传成功”给客户端. 客户端: 1 import java.io.BufferedReader; 2 import java.io.FileReader; 3 import java.io.IOException; 4 import java.io.InputStr