PIXNET Logo登入

彥霖 實驗筆記

跳到主文

個人筆記...

部落格全站分類:數位生活

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 2月 02 週六 201321:47
  • JAVA 取得本機伺服器 IP

ServerSocket ss = new ServerSocket(1024);
System.out.println("伺服器啟動於 : " + ss.getInetAddress().getHostAddress());
(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(0) 人氣(978)

  • 個人分類:[程式語言] Java
▲top
  • 2月 02 週六 201321:21
  • Java 直接取得客戶端 IP 與 Port 的2種方式

取得 客戶端 IP:Port
String ipPort = clientSocket.getRemoteSocketAddress().toString().split("/")[1];
(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(2) 人氣(3,646)

  • 個人分類:[程式語言] Java
▲top
  • 2月 02 週六 201306:25
  • C# TCP 客戶端 2 種 (最小精簡) 寫法:

    依造個人需求,在使用TCP設計客戶端(Client)時,有時候使用Socket方便;有時候使用TcpClient方便。所以今天我提供2種常使用與容易使用的方式,且不需要事先宣告byte[]來當作緩衝(Buffer),也不需要用迴圈把byte一個一個讀取出來。如此一來可以專心在商業邏輯上,加快程式的選寫速度與維護。
方法一 使用 Socket:
using System;
using System.Net;
using System.Net.Sockets;
using System.IO;

class Program
{
static void Main(string[] args)
{
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect("61.227.71.237", 1024); // 1.設定 IP:Port 2.連線至伺服器
NetworkStream stream = new NetworkStream(socket);
StreamReader sr = new StreamReader(stream);
StreamWriter sw = new StreamWriter(stream);

sw.WriteLine("你好伺服器,我是客戶端。"); // 將資料寫入緩衝
sw.Flush(); // 刷新緩衝並將資料上傳到伺服器

Console.WriteLine("從伺服器接收的資料: " + sr.ReadLine());

Console.ReadLine();
}
}
(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(0) 人氣(34,729)

  • 個人分類:[程式語言] C #
▲top
  • 1月 31 週四 201322:44
  • 基於 P2P 的UDP Nat/防火牆 穿透技術:Java Server & C# Client

ccccccccccccccccc
// 本範例不適合用於對稱行網路,要解決此問題請先讓 Client 連線至 Server ,讓 Client 知道自己的 (公開/內部 IP ) 與其他人的 (公開/內部 IP ) ,再檢查自己公開 IP 是否與其他人的公開 IP 重複,如果有重複代表自己處於對稱行網路中,將使用內部 IP 進行通訊即可。
 Java 伺服器程式碼:
 
package javaapplication1;

import java.net.*;
import java.util.ArrayList;
import java.util.HashMap;

public class JavaApplication1 {

public static void main(String[] args) throws Exception {
byte[] buffer = new byte[65507];
DatagramPacket dp = new DatagramPacket(buffer, buffer.length);
DatagramSocket ds = new DatagramSocket(5555); // Set Server Port
System.out.println("伺服器啟動於 : "
+ InetAddress.getLocalHost().getHostAddress() + ":" + ds.getLocalPort());
String msg = "No Message...";
HashMap map = new HashMap();
while (true) {
dp = new DatagramPacket(buffer, buffer.length);
ds.receive(dp);
msg = new String(dp.getData(), 0, dp.getLength());

String ipPort = dp.getAddress().getHostAddress() + ":" + dp.getPort();
// 只要一連線就會把 IP 放進 map 裡
map.put(ipPort, "");
System.out.println(ipPort + " 傳來的訊息 : " + msg);

// 回傳他們自己的 外網IP
dp = new DatagramPacket(ipPort.getBytes(), ipPort.length(), dp.getAddress(), dp.getPort());
ds.send(dp);


// 如果 2 個人上線了...
if (map.size() == 2) {
ArrayList a = new ArrayList();
for (Object ip_Port : map.keySet()) {
a.add(ip_Port.toString());
}
for (Object ip_Port : map.keySet()) {
String temp = "";
for (int i = 0; i < a.size(); i++) {
// 如果現在這個IP不等於之前存放在 map 裡的IP
// 簡單來說就是只要獲取對方的IP,並不需要用到自己的IP
if (!a.get(i).equals(ip_Port)) {
temp += a.get(i);
}
}
// 為每個連線端發送對方的 IP:Port
dp = new DatagramPacket(temp.getBytes(), temp.length(), getIP(ip_Port), getPort(ip_Port));
ds.send(dp);
}
}
}
}

static InetAddress getIP(Object ipPort) throws UnknownHostException {
return InetAddress.getByName(ipPort.toString().split(":")[0]);
}

static int getPort(Object ipPort) {
return Integer.valueOf(ipPort.toString().split(":")[1]);
}
}

(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(7) 人氣(3,505)

  • 個人分類:[程式語言] C #
▲top
  • 1月 31 週四 201303:21
  • JAVA 中 HashMap 列印(取得)全部 Key 與 Value 資料

AA11
    傳統 HashMap 必須輸入Key才能取得Value,但是常常會遇到沒有 Key 但是卻想要得到 Value ,這時可以考慮使用 HashMap 中的 keySet() 方法,要注意的是這種輸出結果的順序並不是依造放入(put)的順序,所以無法跟 ArrayList 一樣有順序性的,他只是把 HashMap 裡的 put 資料全部取出而已,這部分必須要注意。可以參考以下程式碼並比對輸出結果:
 
import java.util.HashMap;

public class NewClass {

public static void main(String[] args) {
HashMap map = new HashMap();

map.put("A", "111");
map.put("B", "222");
map.put("C", "333");
map.put("D", "444");
map.put("E", "555");
map.put("F", "666");
map.put("G", "777");
map.put("H", "888");
map.put("I", "999");


for (Object key : map.keySet()) {
System.out.println(key + " : " + map.get(key));
}
}
}
(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(1) 人氣(119,401)

  • 個人分類:[程式語言] Java
▲top
  • 1月 31 週四 201300:40
  • C# 基於 UDP-Socket 的 UdpClient 使用方法

aaa
    這邊主要的重點是 UdpClient 這個類別,雖然從字面上這個類別叫做 UDP 的 Client (客戶端),但實際上我們也可以用它來建立伺服器,簡單來說 UdpClient 類別可以同時建立 伺服器端 (Server) 與 客戶端 (Client) 兩種功能。
    如果今天要建立伺服器端 UdpClient 則要宣告成 UdpClient uc = new UdpClient(5555); ,這裡的 5555 代表伺服器的 Port (監聽埠)。
(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(0) 人氣(18,004)

  • 個人分類:[程式語言] C #
▲top
  • 1月 30 週三 201314:37
  • 在痞克幫使用 SyntaxHighlighter 3.0.83 為程式碼上色與排版

先至 [ 管理後台 ] → [ 側邊欄位設定 ] → [ 頁尾描述 ] 貼上以下程式碼 :
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/3.0.83/scripts/shCore.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/3.0.83/scripts/shBrushCSharp.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/3.0.83/scripts/shBrushCss.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/3.0.83/scripts/shBrushDiff.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/3.0.83/scripts/shBrushJScript.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/3.0.83/scripts/shBrushPlain.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/3.0.83/scripts/shBrushSql.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/3.0.83/scripts/shBrushVb.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/3.0.83/scripts/shBrushXml.js"></script>
<script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/3.0.83/scripts/shBrushJava.js"></script>
<script type="text/javascript">
SyntaxHighlighter.config.clipboardSwf = 'http://alexgorbatchev.com/pub/sh/3.0.83/scripts/clipboard.swf';
SyntaxHighlighter.all();
</script>
<link type="text/css" rel="stylesheet" href="http://alexgorbatchev.com/pub/sh/3.0.83/styles/shCore.css"/>
<link type="text/css" rel="stylesheet" href="http://alexgorbatchev.com/pub/sh/3.0.83/styles/shThemeDefault.css" id="shTheme"/>
(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(1) 人氣(200)

  • 個人分類:[網頁] HTML 教學
▲top
  • 1月 30 週三 201303:44
  • Unity C# 真‧執行緒

using UnityEngine;
using System.Collections;
using System.Threading;

public class Test : MonoBehaviour
{
My m;

void Start ()
{
m = new My ();
Thread t = new Thread (m.RunMe);
t.Start ();
}

void OnApplicationQuit ()
{
m.Stop ();
}
}

class My
{
int i = 0;
bool isRun = true;

public void RunMe ()
{
while (isRun) {
MonoBehaviour.print ("Run : " + i++);
Thread.Sleep (1000);
}
}

public void Stop ()
{
isRun = false;
}
}
(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(0) 人氣(2,743)

  • 個人分類:[遊戲設計] Unity
▲top
  • 1月 13 週日 201323:05
  • JAVA TQC : 307. 迴圈最大公因數


// 精簡版
 
public class JPA03 {
    public static void main(String[] args) {
        java.util.Scanner s = new java.util.Scanner(System.in);
        int a,b,i;
        while(true){
            System.out.println("Input:");  
            if((i = (a = s.nextInt()))==999) break;            
            b = s.nextInt();            
            while(!(a%i==0&&b%i==0)) i--;  
            System.out.println(i);
        }
    }
}
 
//-------------------------------------------------
(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(2) 人氣(785)

  • 個人分類:[程式語言] Java
▲top
  • 12月 29 週六 201213:17
  • Unity 衣服教學影片

http://www.youtube.com/watch?v=6f4CTry6F-4
(繼續閱讀...)
文章標籤

黃彥霖 發表在 痞客邦 留言(0) 人氣(545)

  • 個人分類:[遊戲設計] Unity
▲top
«1...37383946»

實驗人員

黃彥霖
暱稱:
黃彥霖
分類:
數位生活
好友:
累積中
地區:

文章分類

  • [遊戲設計] Unity (100)
  • [程式語言] Java (91)
  • [程式語言] Go (31)
  • [程式語言] C # (15)
  • [程式語言] Python 3 (11)
  • [程式語言] Erlang (2)
  • [程式語言] Python 2 (2)
  • [程式語言] C++ (10)
  • [程式語言] C (8)
  • [程式語言] Node.js (5)
  • [程式語言] JavaScript (8)
  • [程式語言] Java-Android (2)
  • [資料庫] PostgreSQL (28)
  • [資料庫] Hadoop (2)
  • [作業系統] Linux (23)
  • [作業系統] Windows (3)
  • [作業系統] FreeRTOS (1)
  • [單晶片] Arduino (19)
  • [單晶片] ARM-STM32-F4 (15)
  • [單晶片] ARM-STM32-F1 (13)
  • [單晶片] ARM-LPC1114 (1)
  • [單晶片] PIC33FJ128MC804 (4)
  • [硬體設計] 常用IC (1)
  • [硬體設計] 3D 印表機 (3)
  • [硬體設計] 其他 (4)
  • [數學+程式語言] Matlab (4)
  • [數學] 應用數學 (2)
  • [論壇架設] Discuz! (1)
  • [科技新聞] 機器人 (3)
  • [轉碼工具] FFMPEG (1)
  • [檔案格式] 3D 檔案 (1)
  • [程式語言] 程式設計經驗談 (2)
  • [伺服器] GlassFish 筆記 (1)
  • [網頁] HTML 教學 (5)
  • [網頁] CSS 語法 (1)
  • [網頁] JSP / Servlet (7)
  • [網路監控] SmartSniff (1)
  • [虛擬機器] VirtualBox (1)
  • [電腦安全] 開發者 (1)
  • [美術設計] 繪畫 (0)
  • [3D設計] Blender 教學 (2)
  • [3D設計] Blender 外掛設計 (1)
  • [2D設計] GIMP Python (2)
  • [3D設計] Shroud Studio (3)
  • [展示] 作品、比賽、專題 (4)
  • [人類語言] 希伯來語 (1)
  • [金融] 外匯 (1)
  • 未分類文章 (1)

FB 粉絲頁

最新留言

  • [24/05/04] 訪客 於文章「Arduino 入門教學:讀取 ADXL...」留言:
    我想問一下關於ADXL345的問題,我在ARDUINO上測量...
  • [23/01/14] 訪客 於文章「Arduino 入門教學:Timer 使...」留言:
    如果我的callfunction是需要帶參數的 那t.ev...
  • [21/10/21] 陳霖 於文章「Arduino 入門教學:讀取 LSM3...」留言:
    不好意思不知道您還看不看的到,想請問您,你抓出的加速度器資料...
  • [21/07/23] wjb5741 於文章「Arduino 入門教學:讀取 ADXL...」發表了一則私密留言
  • [21/07/23] wjb5741 於文章「Arduino 入門教學:讀取 ADXL...」發表了一則私密留言
  • [20/10/27] 蔡金龍 於文章「STM32F1 入門教學:UART 接收...」發表了一則私密留言
  • [20/09/17] 秋本 嵐 於文章「Unity 入門教學:使用攝影機...」留言:
    您好,我最近在做Unity與Webcam相關的東西。 我想...
  • [20/08/09] 訪客 於文章「STM32F4 入門教學:SysTick...」留言:
    謝謝分享 ~ : )...
  • [20/07/24] 楊昇逸 於文章「C++ ( Qt 5 ) 入門範例:各種...」發表了一則私密留言
  • [20/03/04] 訪客 於文章「Java Json 教學:使用 org....」留言:
    <script>alert('hello');</scrip...

參觀人氣

  • 本日人氣:
  • 累積人氣: