From da16c99548d97cf7dea28d2d3684c2e4ea3701a6 Mon Sep 17 00:00:00 2001 From: "DESKTOP-B25GA9E\\W35" <1733709035@qq.com> Date: Tue, 28 Feb 2023 16:02:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0server=E7=A4=BA=E4=BE=8B?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{TCPClient => }/Example.meta | 0 .../{TCPClient => }/Example/Scenes.meta | 0 .../Example/Scenes/BluetoothExample.unity | 0 .../Scenes/BluetoothExample.unity.meta | 0 .../Example/Scenes/TCPLinkExample.unity | 0 .../Example/Scenes/TCPLinkExample.unity.meta | 0 .../Example/Scenes/TCPServerExample.unity | 703 ++++++++++++++++++ .../Scenes/TCPServerExample.unity.meta | 7 + .../Example/Scenes/UDPLinkExample.unity | 0 .../Example/Scenes/UDPLinkExample.unity.meta | 0 .../TCPClient/Script/Source.meta | 8 - .../Script/{Source => }/TCPClientModel.cs | 1 - .../{Source => }/TCPClientModel.cs.meta | 0 .../Script/{Source => }/TCPClientView.cs | 3 - .../Script/{Source => }/TCPClientView.cs.meta | 0 .../TCPServer/Script/SocketServer.cs | 128 ++++ .../TCPServer/Script/SocketServer.cs.meta | 11 + .../TCPServer/Script/TCPServerModel.cs | 32 +- .../src/ProtocolSettingsModel.cs | 14 +- 19 files changed, 886 insertions(+), 21 deletions(-) rename Assets/MsgTransmitTools/{TCPClient => }/Example.meta (100%) rename Assets/MsgTransmitTools/{TCPClient => }/Example/Scenes.meta (100%) rename Assets/MsgTransmitTools/{TCPClient => }/Example/Scenes/BluetoothExample.unity (100%) rename Assets/MsgTransmitTools/{TCPClient => }/Example/Scenes/BluetoothExample.unity.meta (100%) rename Assets/MsgTransmitTools/{TCPClient => }/Example/Scenes/TCPLinkExample.unity (100%) rename Assets/MsgTransmitTools/{TCPClient => }/Example/Scenes/TCPLinkExample.unity.meta (100%) create mode 100644 Assets/MsgTransmitTools/Example/Scenes/TCPServerExample.unity create mode 100644 Assets/MsgTransmitTools/Example/Scenes/TCPServerExample.unity.meta rename Assets/MsgTransmitTools/{TCPClient => }/Example/Scenes/UDPLinkExample.unity (100%) rename Assets/MsgTransmitTools/{TCPClient => }/Example/Scenes/UDPLinkExample.unity.meta (100%) delete mode 100644 Assets/MsgTransmitTools/TCPClient/Script/Source.meta rename Assets/MsgTransmitTools/TCPClient/Script/{Source => }/TCPClientModel.cs (99%) rename Assets/MsgTransmitTools/TCPClient/Script/{Source => }/TCPClientModel.cs.meta (100%) rename Assets/MsgTransmitTools/TCPClient/Script/{Source => }/TCPClientView.cs (98%) rename Assets/MsgTransmitTools/TCPClient/Script/{Source => }/TCPClientView.cs.meta (100%) create mode 100644 Assets/MsgTransmitTools/TCPServer/Script/SocketServer.cs create mode 100644 Assets/MsgTransmitTools/TCPServer/Script/SocketServer.cs.meta diff --git a/Assets/MsgTransmitTools/TCPClient/Example.meta b/Assets/MsgTransmitTools/Example.meta similarity index 100% rename from Assets/MsgTransmitTools/TCPClient/Example.meta rename to Assets/MsgTransmitTools/Example.meta diff --git a/Assets/MsgTransmitTools/TCPClient/Example/Scenes.meta b/Assets/MsgTransmitTools/Example/Scenes.meta similarity index 100% rename from Assets/MsgTransmitTools/TCPClient/Example/Scenes.meta rename to Assets/MsgTransmitTools/Example/Scenes.meta diff --git a/Assets/MsgTransmitTools/TCPClient/Example/Scenes/BluetoothExample.unity b/Assets/MsgTransmitTools/Example/Scenes/BluetoothExample.unity similarity index 100% rename from Assets/MsgTransmitTools/TCPClient/Example/Scenes/BluetoothExample.unity rename to Assets/MsgTransmitTools/Example/Scenes/BluetoothExample.unity diff --git a/Assets/MsgTransmitTools/TCPClient/Example/Scenes/BluetoothExample.unity.meta b/Assets/MsgTransmitTools/Example/Scenes/BluetoothExample.unity.meta similarity index 100% rename from Assets/MsgTransmitTools/TCPClient/Example/Scenes/BluetoothExample.unity.meta rename to Assets/MsgTransmitTools/Example/Scenes/BluetoothExample.unity.meta diff --git a/Assets/MsgTransmitTools/TCPClient/Example/Scenes/TCPLinkExample.unity b/Assets/MsgTransmitTools/Example/Scenes/TCPLinkExample.unity similarity index 100% rename from Assets/MsgTransmitTools/TCPClient/Example/Scenes/TCPLinkExample.unity rename to Assets/MsgTransmitTools/Example/Scenes/TCPLinkExample.unity diff --git a/Assets/MsgTransmitTools/TCPClient/Example/Scenes/TCPLinkExample.unity.meta b/Assets/MsgTransmitTools/Example/Scenes/TCPLinkExample.unity.meta similarity index 100% rename from Assets/MsgTransmitTools/TCPClient/Example/Scenes/TCPLinkExample.unity.meta rename to Assets/MsgTransmitTools/Example/Scenes/TCPLinkExample.unity.meta diff --git a/Assets/MsgTransmitTools/Example/Scenes/TCPServerExample.unity b/Assets/MsgTransmitTools/Example/Scenes/TCPServerExample.unity new file mode 100644 index 0000000..5842a51 --- /dev/null +++ b/Assets/MsgTransmitTools/Example/Scenes/TCPServerExample.unity @@ -0,0 +1,703 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &420227241 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 420227244} + - component: {fileID: 420227243} + - component: {fileID: 420227242} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &420227242 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 420227241} + m_Enabled: 1 +--- !u!20 &420227243 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 420227241} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &420227244 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 420227241} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &846447147 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 846447148} + - component: {fileID: 846447150} + - component: {fileID: 846447149} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &846447148 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 846447147} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2100516200} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &846447149 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 846447147} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Button +--- !u!222 &846447150 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 846447147} + m_CullTransparentMesh: 0 +--- !u!1 &897822730 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 897822732} + - component: {fileID: 897822731} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &897822731 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 897822730} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &897822732 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 897822730} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &1020834817 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1020834819} + - component: {fileID: 1020834818} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1020834818 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1020834817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d21a45ed4d4194444984809e9676e7fb, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &1020834819 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1020834817} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1253481797 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1253481801} + - component: {fileID: 1253481800} + - component: {fileID: 1253481799} + - component: {fileID: 1253481798} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1253481798 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1253481797} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1253481799 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1253481797} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &1253481800 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1253481797} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1253481801 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1253481797} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 2100516200} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &1822805530 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1822805533} + - component: {fileID: 1822805532} + - component: {fileID: 1822805531} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1822805531 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1822805530} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &1822805532 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1822805530} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1822805533 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1822805530} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2100516199 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2100516200} + - component: {fileID: 2100516203} + - component: {fileID: 2100516202} + - component: {fileID: 2100516201} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2100516200 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2100516199} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 846447148} + m_Father: {fileID: 1253481801} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2100516201 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2100516199} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2100516202} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &2100516202 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2100516199} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &2100516203 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2100516199} + m_CullTransparentMesh: 0 diff --git a/Assets/MsgTransmitTools/Example/Scenes/TCPServerExample.unity.meta b/Assets/MsgTransmitTools/Example/Scenes/TCPServerExample.unity.meta new file mode 100644 index 0000000..1145d7b --- /dev/null +++ b/Assets/MsgTransmitTools/Example/Scenes/TCPServerExample.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3682974d88def024b835a16678a2b33b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MsgTransmitTools/TCPClient/Example/Scenes/UDPLinkExample.unity b/Assets/MsgTransmitTools/Example/Scenes/UDPLinkExample.unity similarity index 100% rename from Assets/MsgTransmitTools/TCPClient/Example/Scenes/UDPLinkExample.unity rename to Assets/MsgTransmitTools/Example/Scenes/UDPLinkExample.unity diff --git a/Assets/MsgTransmitTools/TCPClient/Example/Scenes/UDPLinkExample.unity.meta b/Assets/MsgTransmitTools/Example/Scenes/UDPLinkExample.unity.meta similarity index 100% rename from Assets/MsgTransmitTools/TCPClient/Example/Scenes/UDPLinkExample.unity.meta rename to Assets/MsgTransmitTools/Example/Scenes/UDPLinkExample.unity.meta diff --git a/Assets/MsgTransmitTools/TCPClient/Script/Source.meta b/Assets/MsgTransmitTools/TCPClient/Script/Source.meta deleted file mode 100644 index 6027d24..0000000 --- a/Assets/MsgTransmitTools/TCPClient/Script/Source.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 6175f27812bd6b446b1ad0a1d7806664 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/MsgTransmitTools/TCPClient/Script/Source/TCPClientModel.cs b/Assets/MsgTransmitTools/TCPClient/Script/TCPClientModel.cs similarity index 99% rename from Assets/MsgTransmitTools/TCPClient/Script/Source/TCPClientModel.cs rename to Assets/MsgTransmitTools/TCPClient/Script/TCPClientModel.cs index 45b87d3..a058dda 100644 --- a/Assets/MsgTransmitTools/TCPClient/Script/Source/TCPClientModel.cs +++ b/Assets/MsgTransmitTools/TCPClient/Script/TCPClientModel.cs @@ -1,6 +1,5 @@ using UnityEngine; using QFrameworkCP; -using JXSoft; using System; using System.Text; using System.Net.Sockets; diff --git a/Assets/MsgTransmitTools/TCPClient/Script/Source/TCPClientModel.cs.meta b/Assets/MsgTransmitTools/TCPClient/Script/TCPClientModel.cs.meta similarity index 100% rename from Assets/MsgTransmitTools/TCPClient/Script/Source/TCPClientModel.cs.meta rename to Assets/MsgTransmitTools/TCPClient/Script/TCPClientModel.cs.meta diff --git a/Assets/MsgTransmitTools/TCPClient/Script/Source/TCPClientView.cs b/Assets/MsgTransmitTools/TCPClient/Script/TCPClientView.cs similarity index 98% rename from Assets/MsgTransmitTools/TCPClient/Script/Source/TCPClientView.cs rename to Assets/MsgTransmitTools/TCPClient/Script/TCPClientView.cs index c046c84..bc8c371 100644 --- a/Assets/MsgTransmitTools/TCPClient/Script/Source/TCPClientView.cs +++ b/Assets/MsgTransmitTools/TCPClient/Script/TCPClientView.cs @@ -1,10 +1,7 @@ using System.Collections; -using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using QFrameworkCP; -using JXSoft; -using System; using System.Threading; using UnityEngine.UI; diff --git a/Assets/MsgTransmitTools/TCPClient/Script/Source/TCPClientView.cs.meta b/Assets/MsgTransmitTools/TCPClient/Script/TCPClientView.cs.meta similarity index 100% rename from Assets/MsgTransmitTools/TCPClient/Script/Source/TCPClientView.cs.meta rename to Assets/MsgTransmitTools/TCPClient/Script/TCPClientView.cs.meta diff --git a/Assets/MsgTransmitTools/TCPServer/Script/SocketServer.cs b/Assets/MsgTransmitTools/TCPServer/Script/SocketServer.cs new file mode 100644 index 0000000..626f826 --- /dev/null +++ b/Assets/MsgTransmitTools/TCPServer/Script/SocketServer.cs @@ -0,0 +1,128 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Net; +using System.Net.Sockets; +using System.Text; +using System.Threading; +using UnityEngine; + +public class SocketServer : MonoBehaviour +{ + int _port = 6000; + string _ip = "127.0.0.1"; + Thread thread; + + void Start() + { + StartServer(); + } + + // Use this for initialization + public void StartServer() + { + bt_connnect_Click(); + } + + + private void bt_connnect_Click() + { + try + { + //点击开始监听时 在服务端创建一个负责监听IP和端口号的Socket + Socket socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + IPAddress ip = IPAddress.Parse(_ip); + //创建对象端口 + IPEndPoint point = new IPEndPoint(ip, _port); + + socketWatch.Bind(point);//绑定端口号 + Debug.Log("监听成功!"); + socketWatch.Listen(10);//设置监听,最大同时连接10台 + + //创建监听线程 + thread = new Thread(Listen); + thread.IsBackground = true; + thread.Start(socketWatch); + } + catch { } + + } + + /// + /// 等待客户端的连接 并且创建与之通信的Socket + /// + Socket socketSend; + void Listen(object o) + { + try + { + Socket socketWatch = o as Socket; + while (true) + { + socketSend = socketWatch.Accept();//等待接收客户端连接 + Debug.Log(socketSend.RemoteEndPoint.ToString() + ":" + "连接成功!"); + //开启一个新线程,执行接收消息方法 + Thread r_thread = new Thread(Received); + r_thread.IsBackground = true; + r_thread.Start(socketSend); + } + } + catch { } + } + + /// + /// 服务器端不停的接收客户端发来的消息 + /// + /// + void Received(object o) + { + try + { + Socket socketSend = o as Socket; + while (true) + { + //客户端连接服务器成功后,服务器接收客户端发送的消息 + byte[] buffer = new byte[1024 * 1024 * 3]; + //实际接收到的有效字节数 + int len = socketSend.Receive(buffer); + if (len == 0) + { + break; + } + string str = Encoding.UTF8.GetString(buffer, 0, len); + Debug.Log("服务器打印:" + socketSend.RemoteEndPoint + ":" + str); + Send("我收到了"); + } + } + catch { } + } + + /// + /// 服务器向客户端发送消息 + /// + /// + void Send(string str) + { + byte[] buffer = Encoding.UTF8.GetBytes(str); + socketSend.Send(buffer); + } + + public void SocketQuit() + { + //关闭线程 + if (thread != null) + { + thread.Interrupt(); + thread.Abort(); + } + //最后关闭服务器 + if (socketSend != null) + socketSend.Close(); + print("diconnect"); + } + void OnApplicationQuit() + { + //退出时关闭连接 + SocketQuit(); + } +} diff --git a/Assets/MsgTransmitTools/TCPServer/Script/SocketServer.cs.meta b/Assets/MsgTransmitTools/TCPServer/Script/SocketServer.cs.meta new file mode 100644 index 0000000..efac0d0 --- /dev/null +++ b/Assets/MsgTransmitTools/TCPServer/Script/SocketServer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d21a45ed4d4194444984809e9676e7fb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/MsgTransmitTools/TCPServer/Script/TCPServerModel.cs b/Assets/MsgTransmitTools/TCPServer/Script/TCPServerModel.cs index 3970e9a..5a05be7 100644 --- a/Assets/MsgTransmitTools/TCPServer/Script/TCPServerModel.cs +++ b/Assets/MsgTransmitTools/TCPServer/Script/TCPServerModel.cs @@ -1,6 +1,13 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; +using System; +using System.Text; +using System.Net.Sockets; +using System.Threading; +using System.Net.NetworkInformation; +using System.Text.RegularExpressions; +using System.Net; namespace JXSoft { public class TCPServerModel:DataEventModel @@ -21,8 +28,29 @@ namespace JXSoft { } } - public class TCPServer { - + public class TCPServerUtility { + public Socket tcpServer; + + /// + /// 开启服务 + /// + /// 端口号 + /// 最大连接数 + public void startServer(int port,int maxLink) { + try + { + //点击开始监听时 在服务端创建一个负责监听IP和端口号的Socket + tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + IPAddress ip = IPAddress.Parse("127.0.0.1"); + //创建对象端口 + IPEndPoint point = new IPEndPoint(ip, port); + + tcpServer.Bind(point);//绑定端口号 + Debug.Log("监听成功!"); + tcpServer.Listen(maxLink);//设置监听,最大同时连接10台 + } + catch { } + } } } diff --git a/Assets/MsgTransmitTools/src/ProtocolSettingsModel.cs b/Assets/MsgTransmitTools/src/ProtocolSettingsModel.cs index 97f4114..a28dcb1 100644 --- a/Assets/MsgTransmitTools/src/ProtocolSettingsModel.cs +++ b/Assets/MsgTransmitTools/src/ProtocolSettingsModel.cs @@ -11,20 +11,20 @@ namespace JXSoft { { } - private ProtocolType protocolType = ProtocolType.NOPROTOCOL; + private ProtocolType_ protocolType = ProtocolType_.NOPROTOCOL; public DataEventModel getProtocol() { switch (protocolType) { - case (ProtocolType.TCP): + case (ProtocolType_.TCP): return this.GetModel(); - case (ProtocolType.UDP): + case (ProtocolType_.UDP): return this.GetModel(); default: return this.GetModel(); } } - public void setProtocol(ProtocolType type) + public void setProtocol(ProtocolType_ type) { protocolType = type; this.SendEvent(new OnProtocolSet(type)); @@ -32,7 +32,7 @@ namespace JXSoft { } [SerializeField] - public enum ProtocolType + public enum ProtocolType_ { NOPROTOCOL = 0, TCP = 1, @@ -40,8 +40,8 @@ namespace JXSoft { } public struct OnProtocolSet { - public ProtocolType type; - public OnProtocolSet(ProtocolType type_) + public ProtocolType_ type; + public OnProtocolSet(ProtocolType_ type_) { type = type_; }