[javaSE] 网络编程(TCP通信)

客户端A与服务端建立通信,服务端获取到客户端A的Socket对象,通过这个通路进行通信

客户端:

获取Socket对象,new出来,创建客户端的Socket服务,构造参数:Sting主机,int 端口

调用Socket对象的getOutputStream()方法,获取输出流OutputStream对象

调用OutputStream对象的write()方法,参数:byte[]字节数组

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;

/**
 * 客户端
 * @author taoshihan
 *
 */
public class Client {
    public static void main(String[] args) throws Exception, IOException {
        Socket socket=new Socket(InetAddress.getLocalHost(), 10003);
        OutputStream outputStream=socket.getOutputStream();
        outputStream.write("Hello TCP".getBytes());

    }
}

服务端:

获取ServerSocket对象,new出来,构造参数:int端口

调用ServerSocket对象的accept()方法,获取到Socket对象,阻塞式的

调用Socket对象的getInputStream()方法,获取输入流InputStream对象

读取输入流,数据量不大,不循环了直接调用InputStream对象的read()方法,参数:byte[]数组

调用Socket对象的getInetAddress()方法,获取到InetAddress对象

调用Socket对象的close()方法,关闭客户端

import java.io.InputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 服务端
 *
 * @author taoshihan
 *
 */
public class Server {
    public static void main(String[] args) throws Exception {
        ServerSocket serverSocket = new ServerSocket(10003);
        while (true) {
            Socket socket = serverSocket.accept();
            InputStream inputStream = socket.getInputStream();

            byte[] buf = new byte[1024];
            int len = inputStream.read(buf);

            InetAddress ip = socket.getInetAddress();
            socket.close();
            System.out.println("来自" + ip.getHostAddress() + "说:"
                    + new String(buf, 0, len));
        }

    }
}
时间: 2024-11-03 19:15:54

[javaSE] 网络编程(TCP通信)的相关文章

[javaSE] 网络编程TCP通信

EffectiveJava%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0%E2%80%94%E2%80%94%E5%A4%8D%E5%90%88%E4%BC%98%E5%85%88%E4%BA%8E%E7%BB%A7%E6%89%BF http://auto.315che.com/sbd203/qa23376156.htm?s1 ??????aWieJ9w2??μ??????? ?????EuQNEVmi??????????t http://auto.315che.co

JAVA网络编程TCP通信

Socket简介: Socket称为"套接字",描述IP地址和端口.在Internet上的主机一般运行多个服务软件,同时提供几种服务,每种服务都打开一个Socket,并绑定在一个端口上,不同的端口对应于不同的服务.Socket和ServerSocket类位于java.net包中.ServerSocket用于服务端,Socket是建立网络连接时使用的.连接成功时,应用程序两端都会产生一个Socket实例,通过操作这个实例完成所需会话. Socket常用方法: -int getLocalP

Visual C++网络编程--TCP通信

TCP服务端 1 #include <WinSock2.h> //包含头文件 2 #include <stdio.h> 3 #include <Windows.h> 4 #include <iostream> 5 #pragma comment(lib,"WS2_32.lib") //显示连接套接字库 6 int main() //主函数开始 7 { 8 WSADATA data; //定义WSADATA结构体对象 9 WORD w=MA

网络编程:Http通信与Socket通信

http://note.youdao.com/share/?id=f14d304548003f65e34255d3ddf9df31&type=note 网络编程:Http通信与Socket通信(移动互联核心) 知识点概述: 1.Socket通信:面向连接(TCP)和无连接的(UDP) 2.HttpURLConnection 接口:Get和Post方式 3.HttpClient接口:Get和Post方式 知识点详述: 1 Socket通信 Socket称为”套接字“,用于描述IP地址和端口,它是支

python网络编程——TCP

<pre name="code" class="python"> 一.网络通信模式 对于网络通信,现在遵循的是TCP/IP协议组. 而现在设计的通信模式中,主要使用的是客户端/服务器编程,所谓的客户端就是我们用户所用的软件,而服务端则是程序开发人员根据客户端的需要设计的服务模式,为了是满足客户端的要求,实现和客户端进行正常通信. 二.套接字:通信的端点 对于tcp/Ip协议来说,它是一个多层协议族,分别是物理层,数据链路层,网络层,传输层,应用层.对于网

网络编程TCP总结及实践-C语言

网络变成首先要注意IP和端口的转换,现在电脑基本上是主机字节序,存储按照小端方式,而在网络中传输统一使用大端方式,所以网络变成首先要注意字节序的转换. 一个常用的ip转换程序的实现: #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #define CHIP(ip) (ip&0xff)<<24 |(ip&(0xff<&

Socket网络编程(TCP/IP/端口/类)和实例

Socket网络编程(TCP/IP/端口/类)和实例 原文:C# Socket网络编程精华篇 转自:微冷的雨 我们在讲解Socket编程前,先看几个和Socket编程紧密相关的概念: TCP/IP层次模型 当然这里我们只讨论重要的四层 01,应用层(Application):应用层是个很广泛的概念,有一些基本相同的系统级TCP/IP应用以及应用协议,也有许多的企业应用和互联网应用.http协议在应用层运行. 02,传输层(Tanspot):传输层包括UDP和TCP,UDP几乎不对报文进行检查,而

JAVA网络编程-----tcp

java采用TCP传输时利用Socket和ServerSocket Socket和ServerSocket 建立客户端和服务端 建立连接后,通过Socket中的IO流进行数据的传输. 关闭Socket 同样,客户端与服务端是两个独立的应用程序. 演示tcp传输 1.   tcp分客户端和服务端 2.   客户端对应的对象是Socket,服务端对应的对象是ServerSocket. 客户端: 通过查阅socket对象,发现在该对象建立时,就可以连接指定主机, 因为tcp是面向连接的,所以在建立so

GO语言练习:网络编程 TCP 示例

1.代码 2.编译及运行 1.网络编程 TCP 示例 simplehttp.go 代码 1 package main 2 3 import ( 4 "net" 5 "os" 6 "io" 7 "bytes" 8 "fmt" 9 ) 10 11 func main() { 12 if len(os.Args) != 2 { 13 fmt.Fprintf(os.Stderr, "Usage : %s

unix环境编程 tcp通信

TCP通信的过程为: 一. 服务器端: 1.socket(int domain,int type,int protocol):建立套接字: 2 .bind(int sockid,struct sockaddr *addrp,socklen_t addrlen):绑定端口和地址信息: 3.listen(int sockid,int qsize):监听套接字; 4.fd=accept(int sockid,struct sockaddr *callerid,socklen_t *addrlenp):