當前位置:首頁 » 編程軟體 » socket編程vs

socket編程vs

發布時間: 2023-12-26 15:37:16

A. SOCKET編程資料

我選第一個題目,這是伺服器端,用c#實現的(VS2005):
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Threading;
using System.Net.Sockets;

namespace conNetWorkServer
{
class Program
{
static void Main(string[] args)
{
Socket client;
Socket ServerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
byte[] addbyte = { 127, 0, 0, 1 };
IPEndPoint add = new IPEndPoint(new IPAddress(addbyte), 5050);
ServerSocket.Bind(add);
ServerSocket.Listen(3);

while (true)
{
Thread.Sleep(100);
if ((client = ServerSocket.Accept()) != null)
{
Console.WriteLine("連接上...發送數據....");
byte[] message = { 49, 50, 51, 52, 53, 54, 0 };
client.Send(message);
Console.WriteLine("結束.")
client.Close();
break;
}

}

}
}
}
這是客戶端:
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Threading;
using System.Net.Sockets;

namespace conNetWorkClient
{
class Program
{
static void Main(string[] args)
{

Socket Server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
byte[] addbyte = { 127, 0, 0, 1 };
Server.Connect(new IPAddress(addbyte), 5050);
byte[] buffer = new byte[255];
if (Server.Receive(buffer) > 0)
{
Console.WriteLine("連接上...");
Console.WriteLine("從伺服器接收數據...");
Console.WriteLine(buffer.ToString());
Console.WriteLine("連接斷開...");
Server.Disconnect(false);
Server.Close();
}

}
}
}

B. 在windows下用C語言如何實現socket網路編程,需要用到哪些頭文件或者庫

需要用到的頭文件包含:

#include <winsock2.h>

#include <windows.h>

與Linux環境下socket編程相比,windows環境多了一個步驟:啟動或者初始化winsock庫

Winsock,一種標准API,一種網路編程介面,用於兩個或多個應用程序(或進程)之間通過網路進行數據通信。具有兩個版本:

Winsock 1:

Windows CE平台支持。

頭文件:WinSock.h

庫:wsock32.lib

Winsock 2:

部分平台如Windows CE貌似不支持。通過前綴WSA可以區別於Winsock 1版本。個別函數如WSAStartup、WSACleanup、WSARecvEx、WSAGetLastError都屬於Winsock 1.1規范的函數;

頭文件:WinSock2.h

庫:ws2_32.lib

mswsock.h用於編程擴展,使用時必須鏈接mswsock.dll

(2)socket編程vs擴展閱讀

winsock庫的載入與卸載:

載入:int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);

載入成功,返回值為0。

WORD wVersionRequested:載入的winsock版本,使用宏MAKEWORD(x, y),x表示高位元組,y表示低位元組。然而使用時MAKEWORD(2, 2)。高位元組與低位元組相同~~

LPWSADATA lpWSAData:WSADATA結構的指針,傳入參數後,系統幫助我們填充版本信息。有興趣的可以看看結構體內容,不過基本用不著。

卸載:int WSACleanup(void);比起載入,卸載的函數真是輕松愉快。

熱點內容
javablock 發布:2024-11-17 04:45:01 瀏覽:92
從安卓到蘋果怎麼轉移通訊錄 發布:2024-11-17 04:44:56 瀏覽:924
shell監控進程腳本 發布:2024-11-17 04:37:46 瀏覽:897
raid0能提升編譯速度嗎 發布:2024-11-17 04:30:52 瀏覽:642
安卓微博緩存 發布:2024-11-17 04:30:15 瀏覽:6
蘋果手機有加密軟體 發布:2024-11-17 04:29:23 瀏覽:648
php函數和方法 發布:2024-11-17 04:27:16 瀏覽:129
我的世界怎麼設置伺服器陣容 發布:2024-11-17 04:26:32 瀏覽:281
數控編程簡單點的圖片 發布:2024-11-17 04:16:57 瀏覽:445
相機存儲卡32 發布:2024-11-17 04:13:50 瀏覽:419