第一次课:简单的TCP/IP编程实例

第一步:创建服务器端程序

1、程序结构

2、程序代码

package cn.shxy.net;

import java.io.IOException;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;

public class TCPServer {
    //主函数
    public static void main(String[] args) throws IOException{
        new TCPServer();
    }

    //服务器套接字
    private ServerSocket serverSocket;
    //客户端套接字
    private Socket client;

    //构造函数
    public TCPServer() throws IOException{
        //实例化服务器套接字
        serverSocket = new ServerSocket(65535);
        //接受客户端连接
        client = serverSocket.accept();
        //输出客户端地址和端口
        System.out.println(client.getInetAddress() + ":" + client.getPort());

        //获取输出流对象,包装成打印流
        PrintStream p = new PrintStream(client.getOutputStream());
        //向客户端发信息,注意此处的换行符
        p.print("你好!\r\n");
    }
}

第二步:创建客户端程序

1、程序结构

2、程序代码

package cn.shxy.net;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;

public class TCPClient {
    //主函数
    public static void main(String[] args) throws UnknownHostException, IOException{
        new TCPClient();
    }

    //套接字
    private Socket client;

    //构造函数
    public TCPClient() throws UnknownHostException, IOException{
        //与服务器相连
        client = new Socket("127.0.0.1", 65535);
        //包装输入流对象,用于获取服务器的消息
        BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream())) ;
        //读取一行
        String str = reader.readLine();
        //输出读取的消息
        System.out.println("从服务器端得到数据:" + str);
    }
}
时间: 2024-08-04 19:03:01

第一次课:简单的TCP/IP编程实例的相关文章

一个简单的Matlab面向对象编程实例

新建Dog.m 内容: classdef Dog properties % these are the variables name; age msg; end methods % these are the functions function obj = Dog() % constructor end function obj = setInfo(obj, name, age) obj.name = name; obj.age = age; end function rst = bark(o

理解socket与tcp/ip编程相关函数

Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序.要学Internet上的TCP/IP网络编程,必须理解Socket接口. Socket接口设计者最先是将接口放在Unix操作系统里面的.如果了解Unix系统的输入和输出的话,就很容易了解Socket了.网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符.Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的S

c# TCP/IP编程

这东西很多朋友都有写过了,我也就写着玩玩,就当做个笔记吧.不废话了. TCP/IP在数据通信中被广泛的使用,自然得包含客户端和服务端,当然,自己自言自语不是什么不可以,可那样貌似有点神经. 好了,那就先来建立服务端吧. 1.新建一个项目,就取名叫MyServer吧,然后敲入如下代码: using System;using System.Net;using System.Net.Sockets; namespace MyServer{    class Program    {        st

TCP/IP编程 - 1) 基础知识

1. What Is a Socket?(什么是套接字) A socket is an abstraction through which an application may send and receive data, in muchthe same way as an open-file handle allows an application to read and write data to stablestorage. 简单来说,套接字就是网络数据传输用的软件设备. 举个生活中的例子

TCP/IP编程学习01

网络编程就是编写使多台计算机联网交互数据.操作系统会提供名为socket(套接字)的部件,socket是网络数据传输的设备软件,所以说网络编程又可以成为socket编程. 在此借用书中打电话例子,对socket的使用做简单描述: 1)首先要有一个电话,新建电话就相当于创建一个电话socket. int socket(int domain, int type, int protocol); 2)给电话分配号码,绑定IP地址和端口号. int bind(int sockfd, struct sock

如何才能算得上熟悉TCP/IP编程?(转知乎)

1. 作者:匿名用户链接:https://www.zhihu.com/question/20795067/answer/16259037 能进行网络编程 1.如果你说你会select,epoll,iocp模型,那会让对方觉得更靠谱2.如果你说出你做过im,下载之类那会让对方来兴趣.3.如果你说设计了通讯协议,会让对方觉得更贴切4.如果你说做过,熟悉, ftp http snmp smtp 这些简单的老古董协议,会加分,但不大.5.如果你说熟悉bt,emule,udt等协议,那会对你很有好感.6.

delphi tcp/ip IdTCPServer1实例一

unit Unit1; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, IdBaseComponent, IdComponent, IdTCPServer, StdCtrls; type  TForm1 = class(TForm)    IdTCPServer1: TIdTCPServer;    Button1: TButton;    E

Linux下的TCP/IP编程----进程及多进程服务端

在之前的学习中我们的服务端同一时间只能为一个客户端提供服务,即使是将accept()函数包含在循环中,也只能是为多个客户端依次提供服务,并没有并发服务的能力,这显然是不合理的.通过多进程的使用,我们可以很便捷的实现服务端的多进程,这样就可以同时为多个客户端提供服务. 首先我们要理解程序,进程,进程ID,僵尸进程,线程的概念. 程序:广泛的说就是为了达到某一目的二规定的途径,在编程中具体的就是为了实现某一功能而编写的代码实体,是静态的. 进程:程序的一次动态执行就是一个进程,它是占用了一定内存空间

【python】TCP/IP编程

No1: [TCP] 客户端 import socket s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('www.sina.com.cn',80)) s.send(b'GET / HTTP/1.1\r\nHost: www.sina.com.cn\r\nConnection:close\r\n\r\n') buffer=[] while True: d=s.recv(1024) if d: buffer.append(