suchen
HeimBackend-EntwicklungPHP-TutorialEine kurze Einführung in das Socket-Kommunikationsprinzip von PHP

für TCP/IP, UDP, Socket Du kennst das Wort Programmieren nicht, oder? Mit der Entwicklung der Netzwerktechnologie dringen diese Worte in unsere Ohren. Ich möchte also fragen:
1. Was ist TCP/IP, UDP?
2. Wo ist Steckdose?
3.           SteckdoseWas ist das?
4. Werden Sie sie verwenden?
Was ist TCP/IP, UDP?

    TCP/IPTransmission Control Protocol/Internet Protocol) Das Transmission Control Protocol/Internet Protocol ist ein Industriestandard-Protokollsatz, der für Weitverkehrsnetze (WANs) entwickelt wurde.
 UDP (User Data Protocol, User Datagram Protocol) ist das Protokoll, das TCP entspricht. Es ist ein Mitglied der TCP/IP-Protokollfamilie.
Hier ist ein Diagramm, das die Beziehung zwischen diesen Protokollen zeigt.

Die TCP/IP-Protokollsuite umfasst Transportschicht und Netzwerk Schicht, Verbindungsschicht. Jetzt kennen Sie die Beziehung zwischen TCP/IP und UDP.
Wo ist die Steckdose?
In Abbildung 1 sehen wir den Schatten von Socket nicht. Wo ist er also? Lassen wir Bilder für sich sprechen.

Es stellt sich heraus, dass der Sockel hier ist.
Was ist Socket?
Socket ist eine zwischengeschaltete Software-Abstraktionsschicht für die Kommunikation zwischen der Anwendungsschicht und der TCP/IP-Protokollsuite. Es handelt sich um eine Reihe von Schnittstellen. Im Entwurfsmodus ist Socket eigentlich ein Fassadenmodus, der die komplexe TCP/IP-Protokollfamilie hinter der Socket-Schnittstelle verbirgt. Für Benutzer ist alles eine Reihe einfacher Schnittstellen, die es Socket ermöglichen, Daten so zu organisieren, dass sie dem angegebenen Protokoll entsprechen.
Können Sie sie verwenden?
Frühere Generationen haben viel für uns getan und die Kommunikation zwischen Netzwerken ist viel einfacher geworden, aber es gibt immer noch viel zu tun. Als ich zuvor von Socket-Programmierung hörte, dachte ich, es handele sich um relativ fortgeschrittene Programmierkenntnisse, aber solange wir das Funktionsprinzip der Socket-Programmierung verstehen, wird das Rätsel gelöst sein.
Eine Szene aus dem Leben. Wenn Sie einen Freund anrufen möchten, wählen Sie zuerst die Nummer. Wenn der Freund den Klingelton hört, nimmt er den Hörer ab. Zu diesem Zeitpunkt sind Sie und Ihr Freund verbunden und Sie können sprechen. Wenn die Kommunikation beendet ist, legen Sie den Hörer auf, um das Gespräch zu beenden. Szenen aus dem Leben erklären, wie das funktioniert. Vielleicht wurde die TCP/IP-Protokollfamilie im Leben geboren, aber das ist nicht unbedingt der Fall.

Beginnen wir mit der Serverseite. Der Server initialisiert zuerst den Socket, bindet dann an den Port, lauscht auf den Port, ruft „Accept“ zum „Blockieren“ auf und wartet darauf, dass der Client eine Verbindung herstellt. Wenn zu diesem Zeitpunkt ein Client einen Socket initialisiert und dann eine Verbindung zum Server herstellt und die Verbindung erfolgreich ist, wird die Verbindung zwischen dem Client und dem Server hergestellt. Der Client sendet eine Datenanforderung, der Server empfängt die Anforderung und verarbeitet sie, sendet dann die Antwortdaten an den Client, der Client liest die Daten und schließt schließlich die Verbindung und die Interaktion endet.

Sockelbezogene Funktionen:
------------------------------------- --- ------------------ --- -------
socket_accept() akzeptiert eine Socket-Verbindung
socket_bind() bindet den Socket an eine IP-Adresse und einen Port
socket_clear_error() löscht den Socket-Fehler oder den letzten Fehlercode
socket_close() Schließt eine Socket-Ressource
socket_connect() Startet eine Socket-Verbindung
socket_create_listen() Öffnet einen Socket, der den angegebenen Port überwacht
socket_create_pair() Erzeugt ein Paar nicht unterscheidbarer Sockets in einem Array
socket_create() generiert einen Socket, was dem Generieren einer Socket-Datenstruktur entspricht
socket_get_option() ruft die Socket-Optionen ab
socket_getpeername() ruft die IP-Adresse eines entfernten ähnlichen Hosts ab
socket_getsockname() ruft die ab IP der lokalen Socket-Adresse
socket_iovec_add() Fügt einem Scatter-/Aggregate-Array einen neuen Vektor hinzu
socket_iovec_alloc() Diese Funktion erstellt eine iovec-Datenstruktur, die senden, empfangen, lesen und schreiben kann
socket_iovec_delete() Löschen Sie einen bereits zugewiesenen Iovec.
Socket_iovec_fetch() gibt die Daten der angegebenen Iovec-Ressource zurück.
Socket_iovec_free() gibt eine Iovec-Ressource frei.
Socket_iovec_set() legt den neuen Wert der Iovec-Daten fest letzter Fehlercode des aktuellen Sockets
socket_listen() hört auf alle Verbindungen vom angegebenen Socket
socket_read() liest Daten der angegebenen Länge
socket_readv() liest Daten aus dem Scatter/Aggregate-Array
socket_recv() beendet die Daten vom Socket zum Zwischenspeichern
socket_recvfrom() Akzeptiert Daten vom angegebenen Socket. Wenn nicht angegeben, wird der aktuelle Socket als Standard verwendet
socket_recvmsg() Nachrichten von iovec empfangen
socket_select() Mehrfachauswahl
socket_send() Diese Funktion sendet Daten an den angeschlossenen Socket
socket_sendmsg() sendet eine Nachricht an den Socket
socket_sendto() sendet eine Nachricht an den Socket an der angegebenen Adresse
socket_set_block() Den Socket auf Blockmodus setzen
socket_set_nonblock() socket Auf Nichtblockmodus setzen
socket_set_option() Socket-Optionen festlegen
socket_shutdown() Mit dieser Funktion können Sie das Lesen, Schreiben oder den angegebenen Socket schließen
socket_strerror() Gibt den detaillierten Fehler der angegebenen Fehlernummer zurück
socket_write() schreibt Daten in den Socket-Cache
socket_writev() schreibt Daten in das Scatter/Aggregate-Array

Fall 1: Demonstration der Socket-Kommunikation

Serverseite:

<span><?php //确保在连接客户端时不会超时
set_time_limit(0);

$ip = '127.0.0.1';
$port = 1935;

/*
 &#43;-------------------------------
 *    @socket通信整个过程
 &#43;-------------------------------
 *    @socket_create
 *    @socket_bind
 *    @socket_listen
 *    @socket_accept
 *    @socket_read
 *    @socket_write
 *    @socket_close
 &#43;--------------------------------
 */

/*----------------    以下操作都是手册上的    -------------------*/
if(($sock = socket_create(AF_INET,SOCK_STREAM,SOL_TCP)) < 0) {
    echo "socket_create() 失败的原因是:".socket_strerror($sock)."\n";
}

if(($ret = socket_bind($sock,$ip,$port)) < 0) {
    echo "socket_bind() 失败的原因是:".socket_strerror($ret)."\n";
}

if(($ret = socket_listen($sock,4)) < 0) {
    echo "socket_listen() 失败的原因是:".socket_strerror($ret)."\n";
}

$count = 0;

do {
    if (($msgsock = socket_accept($sock)) < 0) {
        echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "\n";
        break;
    } else {
        
        //发到客户端
        $msg ="测试成功!\n";
        socket_write($msgsock, $msg, strlen($msg));
        
        echo "测试成功了啊\n";
        $buf = socket_read($msgsock,8192);
        
        
        $talkback = "收到的信息:$buf\n";
        echo $talkback;
        
        if(&#43;&#43;$count >= 5){
            break;
        };
        
    
    }
    //echo $buf;
    socket_close($msgsock);

} while (true);

socket_close($sock);
?></span>

Dies ist der Servercode des Sockets. Führen Sie dann cmd aus und achten Sie auf den Speicherpfad Ihres eigenen Programms.

Keine Reflexion, das Serverprogramm wurde gestartet und der Port hat mit dem Abhören begonnen. Führen Sie netstat -ano aus, um den Portstatus zu überprüfen.

Sehen Sie, der Port befindet sich bereits im LISTENING-Zustand. Als nächstes müssen wir nur noch das Client-Programm ausführen, um eine Verbindung herzustellen. Code auf

<span><?php error_reporting(E_ALL);
set_time_limit(0);
echo "<h2>TCP/IP Connection\n";

$port = 1935;
$ip = "127.0.0.1";

/*
 +-------------------------------
 *    @socket连接整个过程
 +-------------------------------
 *    @socket_create
 *    @socket_connect
 *    @socket_write
 *    @socket_read
 *    @socket_close
 +--------------------------------
 */

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket $in <br>";
}

while($out = socket_read($socket, 8192)) {
    echo "接收服务器回传信息成功!\n";
    echo "接受的内容为:",$out;
}


echo "关闭SOCKET...\n";
socket_close($socket);
echo "关闭OK\n";
?></span>

Der Client ist jetzt verbunden Auf der Serverseite.

Fall 2: Detaillierte Codeerklärung

// Legen Sie einige grundlegende Variablen fest
$host = "192.168.1.99"
;
$port = 1234
;
//Timeout festlegen
set_time_limit(0
);
//Socket erstellen
$socket = socket_create(AF_INET, SOCK_STREAM, 0) oder sterben („Socketn konnte nicht erstellt werden“
);
//Socket an Port binden
$result = socket_bind($socket, $host, $port ) oder sterben("Konnte keine Verbindung zum Socket herstellen"
);
// Beginnen Sie mit der Überwachung des Links
$result = socket_listen($socket, 3) oder sterben("Socketlistenern konnte nicht eingerichtet werden"
);
// Eingehende Verbindungen akzeptieren
// Ein weiterer Socket zur Abwicklung der Kommunikation
$spawn = socket_accept($socket) oder sterben(„Eingehende Verbindung konnte nicht akzeptiert werden“
);
// Erhalten Sie Eingaben vom Client
$input = socket_read($spawn , 1024) oder sterben(„Konnte Eingaben nicht lesen“
);
// Lösche die Eingabezeichenfolge
$input = trim( $input
);
//Client-Eingabe verarbeiten und Ergebnisse zurückgeben
$output = strrev($input) ;socket_write
(
$spawn
, $output , strlen ($output)) oder sterben("Konnte nicht schreibenoutputn");

// Sockets schließen

socket_close
(
$ spawn
);socket_close
(
$socket
);Im Folgenden finden Sie eine detaillierte Beschreibung jedes Schritts:Zum Beispiel:Website-Design-Unternehmen
,
Design-Unternehmen ,Internet-Marketing,Internet-Werbung,Internet-Optimierung Website-Werbung, Website-Optimierung, Website-Betrieb usw. Das sind sie alle ähnlichen Schritte. 1. Der erste Schritt besteht darin, zwei Variablen zu erstellen, um die IP-Adresse und den Port des Servers zu speichern, auf dem der Socket ausgeführt wird. Sie können ihn auf Ihr eigenes Website-Design einstellen
Server und
Build-Website Port (dieser Port kann eine Zahl zwischen 1 und 65535 sein), sofern dieser Port nicht verwendet wird . [In Zwischenablage kopieren]

PHP-CODE:

<h5>// Zwei Variablen festlegen <span></span> </h5>$host <p><span>= <code><span>// 设置两个变量<br></span><span>$host </span><span>= </span><span>"192.168.1.99"</span><span>;<br></span><span>$port </span><span>= </span><span>1234</span><span>;</span><br>"192.168.1.99"

;$port = 1234;

2. Auf der Serverseite können Sie die Funktion set_time_out() verwenden , um sicherzustellen, dass PHP beim Warten auf die Verbindung des Clients nicht abläuft .

Erstellen Sie eine Website

<span>// 超时时间<br></span><span>set_time_limit</span><span>(</span><span>0</span><span>);</span><br>

[In Zwischenablage kopieren]PHP-CODE:// Timeout

set_time_limit(0

); 3. Auf der Grundlage von ist es nun an der Zeit, einen Socket mit der Funktion socket_creat() zu erstellen – diese Funktion gibt ein Socket-Handle zurück, das in allen zukünftigen WebsitesIn der Funktion von .[In Zwischenablage kopieren]
PHP CODE:

<code><span>// 创建Socket<br></span><span>$socket </span><span>= </span><span>socket_create</span><span>(</span><span>AF_INET</span><span>, </span><span>SOCK_STREAM</span><span>, </span><span>0</span><span>) or die(</span><span>"Could not create<br>socketn"</span><span>);</span><br>// Socket erstellen

$socket = socket_create
(AF_INET, SOCK_STREAM,
0) oder sterben(
"Konnte

Socketn nicht erstellen"

);

Der erste Parameter „AF_INET“ wird verwendet, um den Domänennamen anzugeben.

<span>// 创建 socket<br></span><span>$socket </span><span>= </span><span>socket_create</span><span>(</span><span>AF_INET</span><span>, </span><span>SOCK_DGRAM</span><span>, </span><span>0</span><span>) or die(</span><span>"Could not create<br>socketn"</span><span>);</span><br>Der zweite Parameter „SOCK_STREM“ teilt der Funktion mit, welche Klasse

verwendet wird erstellt werden Socket vom Typ

(in diesem Beispiel TCP Typ ) Wenn Sie also einen UDP-Socket erstellen möchten, Sie können den folgenden Code verwenden:[In Zwischenablage kopieren]

PHP-CODE :

// Socket erstellen
$socket

= <span>// 绑定 socket to 指定地址和端口<br></span><span>$result </span><span>= </span><span>socket_bind</span><span>(</span><span>$socket</span><span>, </span><span>$host</span><span>, </span><span>$port</span><span>) or die(</span><span>"Could not bind to<br>socketn"</span><span>);</span><br>socket_create

(

AF_INET, SOCK_DGRAM, 0) oder sterben (

"

Socketn konnte nicht erstellt werden");

4 . Sobald ein Socket-Handle erstellt wurde, besteht der nächste Schritt darin, es der angegebenen

<span>// 开始监听连接<br></span><span>$result </span><span>= </span><span>socket_listen</span><span>(</span><span>$socket</span><span>, </span><span>3</span><span>) or die(</span><span>"Could not set up socket<br>listenern"</span><span>);</span><br>Adresse des Website-Bauunternehmens

und Enterprise-Website-Erstellung Port Dies kann über die Funktion socket_bind() erfolgen.

[In Zwischenablage kopieren]

PHP CODE:

// Socket an angegebene Adresse und Port binden

<span>//接受请求链接<br>// 调用子socket 处理信息<br></span><span>$spawn </span><span>= </span><span>socket_accept</span><span>(</span><span>$socket</span><span>) or die(</span><span>"Could not accept incoming<br>connectionn"</span><span>);</span><br>$result

=

socket_bind($socket, $host, $port
) oder sterben("Konnte keine Bindung anSocketn durchführen"
);
5. Nachdem der Socket erstellt und an einen Port gebunden wurde, können Sie mit dem Abhören von externen Connected beginnen. Mit PHP können Sie eine Website-Produktionsfirma

gründen, die über die Funktion socket_listen() abhört, und Sie können eine Zahl angeben ( In diesem Beispiel ist es der zweite Parameter: 3)

[In Zwischenablage kopieren]

PHP CODE: <span>// 读取客户端输入<br></span><span>$input </span><span>= </span><span>socket_read</span><span>(</span><span>$spawn</span><span>, </span><span>1024</span><span>) or die(</span><span>"Could not read inputn"</span><span>);<br>?&</span><span>gt</span><span>;</span><br>

// Beginnen Sie mit der Suche nach Verbindungen $result = socket_listen($socket, 3) oder sterben("Socket konnte nicht eingerichtet werden Listener");6. Bis jetzt hat Ihr Server im Grunde nur Warten Es wird nichts getan, außer der Verbindungsanfrage vom Client. Sobald eine Client-Verbindung empfangen wird, kommt die Funktion socket_accept() ins Spiel. Sie empfängt die Verbindungsanfrage und ruft einen anderen Sub-Socket auf, um den Client zu bearbeiten – ​​ Website-ErstellungInformationen zwischen Servern.[In Zwischenablage kopieren]PHP-CODE://Anforderungslink akzeptieren// Subsocket-Prozessinformationen aufrufen$spawn = socket_accept($socket) oder sterben(„EingehendeVerbindung konnte nicht angenommen werden“);Dieser Sub-Socket kann nun für die nachfolgende WebseitenproduktionClient-Server-Kommunikation verwendet werden. 7. Wenn eine Verbindung hergestellt ist, Webdesign Der Server wartet darauf, dass der Client einige Eingabeinformationen sendet. Diese Informationen können mit der Funktion socket_read() abgerufen und der $input-Variablen von PHP zugewiesen werden.[In Zwischenablage kopieren]PHP-CODE://Client-Eingabe lesen$input = socket_read( $spawn, 1024) oder sterben("Konnte Eingaben nicht lesen" );? &gt;

Der zweite Parameter von socker_read wird verwendet, um die Anzahl der gelesenen Bytes anzugeben. Sie können ihn verwenden, um die Erfassung von Daten vom Client Größe.
Hinweis: Die Funktion socket_read liest immer die Daten des Shell-Clients APPEntwicklung, bis sie auf n, t oder trifft Das Obige hat eine kurze Einführung in das Socket-Kommunikationsprinzip von PHP gegeben, einschließlich einiger Aspekte des Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
PHP und Python: Verschiedene Paradigmen erklärtPHP und Python: Verschiedene Paradigmen erklärtApr 18, 2025 am 12:26 AM

PHP ist hauptsächlich prozedurale Programmierung, unterstützt aber auch die objektorientierte Programmierung (OOP). Python unterstützt eine Vielzahl von Paradigmen, einschließlich OOP, funktionaler und prozeduraler Programmierung. PHP ist für die Webentwicklung geeignet, und Python eignet sich für eine Vielzahl von Anwendungen wie Datenanalyse und maschinelles Lernen.

PHP und Python: Ein tiefes Eintauchen in ihre GeschichtePHP und Python: Ein tiefes Eintauchen in ihre GeschichteApr 18, 2025 am 12:25 AM

PHP entstand 1994 und wurde von Rasmuslerdorf entwickelt. Es wurde ursprünglich verwendet, um Website-Besucher zu verfolgen und sich nach und nach zu einer serverseitigen Skriptsprache entwickelt und in der Webentwicklung häufig verwendet. Python wurde Ende der 1980er Jahre von Guidovan Rossum entwickelt und erstmals 1991 veröffentlicht. Es betont die Lesbarkeit und Einfachheit der Code und ist für wissenschaftliche Computer, Datenanalysen und andere Bereiche geeignet.

Wählen Sie zwischen PHP und Python: Ein LeitfadenWählen Sie zwischen PHP und Python: Ein LeitfadenApr 18, 2025 am 12:24 AM

PHP eignet sich für Webentwicklung und schnelles Prototyping, und Python eignet sich für Datenwissenschaft und maschinelles Lernen. 1.PHP wird für die dynamische Webentwicklung verwendet, mit einfacher Syntax und für schnelle Entwicklung geeignet. 2. Python hat eine kurze Syntax, ist für mehrere Felder geeignet und ein starkes Bibliotheksökosystem.

PHP und Frameworks: Modernisierung der SprachePHP und Frameworks: Modernisierung der SpracheApr 18, 2025 am 12:14 AM

PHP bleibt im Modernisierungsprozess wichtig, da es eine große Anzahl von Websites und Anwendungen unterstützt und sich den Entwicklungsbedürfnissen durch Frameworks anpasst. 1.PHP7 verbessert die Leistung und führt neue Funktionen ein. 2. Moderne Frameworks wie Laravel, Symfony und Codesigniter vereinfachen die Entwicklung und verbessern die Codequalität. 3.. Leistungsoptimierung und Best Practices verbessern die Anwendungseffizienz weiter.

Auswirkungen von PHP: Webentwicklung und darüber hinausAuswirkungen von PHP: Webentwicklung und darüber hinausApr 18, 2025 am 12:10 AM

PhPhas significantantyPactedWebDevelopmentAndendendsbeyondit.1) iTpowersMAjorPlatforms-LikewordpressandExcelsInDatabaseInteractions.2) php'SadaptabilityAllowStoscaleForLargeApplicationsfraMe-Linien-Linien-Linien-Linienkripte

Wie funktioniert der Php -Typ -Hinweis, einschließlich Skalartypen, Rückgabetypen, Gewerkschaftstypen und nullbaren Typen?Wie funktioniert der Php -Typ -Hinweis, einschließlich Skalartypen, Rückgabetypen, Gewerkschaftstypen und nullbaren Typen?Apr 17, 2025 am 12:25 AM

PHP -Typ -Eingabeaufforderungen zur Verbesserung der Codequalität und der Lesbarkeit. 1) Tipps zum Skalartyp: Da Php7.0 in den Funktionsparametern wie int, float usw. angegeben werden dürfen. 3) Eingabeaufforderung für Gewerkschaftstyp: Da Php8.0 in Funktionsparametern oder Rückgabetypen angegeben werden dürfen. 4) Nullierstyp Eingabeaufforderung: Ermöglicht die Einbeziehung von Nullwerten und Handlungsfunktionen, die Nullwerte zurückgeben können.

Wie handelt es sich bei PHP -Objektklonen (Klonschlüsselwort) und der __clone Magic -Methode?Wie handelt es sich bei PHP -Objektklonen (Klonschlüsselwort) und der __clone Magic -Methode?Apr 17, 2025 am 12:24 AM

Verwenden Sie in PHP das Klonschlüsselwort, um eine Kopie des Objekts zu erstellen und das Klonierungsverhalten über die \ _ \ _ Clone Magic -Methode anzupassen. 1. Verwenden Sie das Klonschlüsselwort, um eine flache Kopie zu erstellen und die Eigenschaften des Objekts, nicht die Eigenschaften des Objekts zu klonen. 2. Die \ _ \ _ Klonmethode kann verschachtelte Objekte tief kopieren, um flache Kopierprobleme zu vermeiden. 3. achten Sie darauf, dass kreisförmige Referenzen und Leistungsprobleme beim Klonen vermieden werden, und optimieren Sie die Klonierungsvorgänge, um die Effizienz zu verbessern.

PHP vs. Python: Anwendungsfälle und AnwendungenPHP vs. Python: Anwendungsfälle und AnwendungenApr 17, 2025 am 12:23 AM

PHP eignet sich für Webentwicklungs- und Content -Management -Systeme, und Python eignet sich für Datenwissenschafts-, maschinelles Lernen- und Automatisierungsskripte. 1.PHP hat eine gute Leistung beim Erstellen von schnellen und skalierbaren Websites und Anwendungen und wird üblicherweise in CMS wie WordPress verwendet. 2. Python hat sich in den Bereichen Datenwissenschaft und maschinelles Lernen mit reichen Bibliotheken wie Numpy und TensorFlow übertrifft.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor