zoukankan      html  css  js  c++  java
  • Java Socket 入门2 Java与C# Socket 通信

    参考http://www.cnblogs.com/cdtarena/p/3184313.html

    这里以C#作为服务端  其实不论C#是服务端还是客户端都不是主要问题

    毕竟不论客户端还是服务端 都包括了发送和接收两个部分

    C#

    using System;
    using System.Text;
    using System.IO;
    using System.Net;
    using System.Net.Sockets;
    
    /*转载http://www.cnblogs.com/jason_yjau/archive/2009/06/24/1510580.html*/
    namespace SocketOne
    {
        class MyServer
        {
            static void Main(string[] args)
            {
                try
                {
                    int port = 8081;
                    string host = "127.0.0.1";
                    IPAddress ip = IPAddress.Parse(host);
                    IPEndPoint ipe = new IPEndPoint(ip, port);
                    Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个Socket类
                    s.Bind(ipe);//绑定8081端口
                    s.Listen(0);//开始监听
                    Console.WriteLine("Wait for connect");
                    Socket temp = s.Accept();//为新建连接创建新的Socket。
                    Console.WriteLine("Get a connect");
                    string recvStr = "";
                    string sendStr = "";
    
                    //int count = 0;
                    while (true)
                    {
    
                        //接收传送信息的时候都是发送的byte数组
                        //首先向客户端发送信息                    
                        sendStr = Console.ReadLine();
                        byte[] recvBytes = new byte[1024];
                        //与java通信 后面加个
      因为我的java用的是readline
                        byte[] bs = Encoding.ASCII.GetBytes(sendStr+"
    ");
                        temp.Send(bs, bs.Length, 0);//返回客户端成功信息
    
    
                        //接收信息
                        int bytes;
                        bytes = temp.Receive(recvBytes, recvBytes.Length, 0);//从客户端接受信息
                        recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);//
                        Console.WriteLine("Server Get Message:{0}", recvStr);//把客户端传来的信息显示出来
    
    
                    }
                    //temp.Close();
                    //s.Close();
                }
                catch (ArgumentNullException e)
                {
                    Console.WriteLine("ArgumentNullException: {0}", e);
                }
                catch (SocketException e)
                {
                    Console.WriteLine("SocketException: {0}", e);
                }
                Console.WriteLine("Press Enter to Exit");
                Console.ReadLine();
            }
        }
    }

    Java

    package socketToCSharp;
    
    import java.io.*;
    import java.net.*;
    
    public class Client {
        Socket socket;
        BufferedReader in;
        PrintWriter out;
    
        public Client() {
            try {
                socket = new Socket("127.0.0.1", 8081);
                
                in = new BufferedReader(new InputStreamReader(socket
                        .getInputStream()));
                out = new PrintWriter(socket.getOutputStream(), true);
                BufferedReader line = new BufferedReader(new InputStreamReader(
                        System.in));
                
                String str=null;
                String msg=null;
                while(true){
                    //System.out.println("client loop");
                    str=in.readLine();
                    System.out.println("servdr says "+str);
                    
                    //java在发送和接受信息时  都要语句后以
    结尾的
                    //C#恰好相反  因此 C#给java发信息  语句末尾要加
     
                    //java给C#发信息  末尾去掉
    
                    msg="client";
                    msg=line.readLine();
                    msg=msg.replace('
    ', ' ');
                    out.println(msg);
                    //out.flush();
                    
                }
    //            line.close();
    //            out.close();
    //            in.close();
    //            socket.close();
            } catch (IOException e) {
            }
        }
        public static void main(String[] args) {
            new Client();
        }
    }
  • 相关阅读:
    Python-读取文件内容
    torch_03_二分类
    torch_02_多项式回归
    pytorch_01_基础_一维线性回归
    LC-KSVD 代码解读
    标签一致项(LC-KSVD)-全文解读
    PCA:主成分分析
    牛客刷题-大佬链接
    调试MATLAB代码
    scroll offset & client总结
  • 原文地址:https://www.cnblogs.com/cart55free99/p/3376630.html
Copyright © 2011-2022 走看看