Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ソケットについて
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
jambo-develop-team
March 11, 2024
56
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ソケットについて
TCP/IP等ネットワークプロトコルを使って データを双方向で送受信するための手段
TCP/IPという技術を使いやすくした API、ライブラリのようなもの
jambo-develop-team
March 11, 2024
More Decks by jambo-develop-team
See All by jambo-develop-team
株式会社ジャンボ_紹介資料
jambo_develop_team
0
41
AIに仕事を奪われないために──エンジニアが今すぐ身につけるべき4つの力
jambo_develop_team
0
82
AIツールをフル活用して個人開発をした話
jambo_develop_team
0
59
Claude.mdの育て方
jambo_develop_team
0
58
技術力とAI活用力は違う。市場価値を分ける”苦労のコスパ論
jambo_develop_team
0
58
AIに仕事を奪われないために──エンジニアが今すぐ身につけるべき4つの力
jambo_develop_team
0
81
FigmaMCP+Cursorで直感的にUIを作成してみる🎨
jambo_develop_team
0
210
StoreKit2を使用した課金実装
jambo_develop_team
0
460
AppDelegateで何をすべきか
jambo_develop_team
0
720
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
BBQ
matthewcrist
89
10k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
A designer walks into a library…
pauljervisheath
211
25k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
300
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
How to Ace a Technical Interview
jacobian
281
24k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
For a Future-Friendly Web
brad_frost
183
10k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
270
Transcript
ીࠜݪޫҰ ιέοτʹ͍ͭͯ
None
ൃදͷత ιέοτ͕Կऀͳͷ͔ Կͱͳ͘ͰΠϝʔδͰ͖ΔΑ͏ʹ͢Δ
݁ہιέοτͬͯԿʁ
5$1*1 ʢݸਓతͳݟղʣ
5$1*1ωοτϫʔΫϓϩτίϧΛͬͯ σʔλΛํͰૹड৴͢ΔͨΊͷखஈ 5$1*1ͱ͍͏ٕज़Λ͍ͨ͘͢͠ "1*ɺϥΠϒϥϦͷΑ͏ͳͷ ͏গ͠۩ମతʹ
ͦͦ5$1*1ͬͯʁ
5$1*1ͱ ௨৴نɾ௨৴ʹ͓͚Δଋࣄ ΞϓϦέʔγϣϯ )551ɺ4.51ɺ%/4 τϥϯεϙʔτ 5$1ɺ6%1 Πϯλʔωοτ
*1ɺ"31ɺ3"31 ωοτϫʔΫΠϯλʔϑΣʔε &UIFSOFUɺ111
Πϯλʔωοτͷׂɺ*1ΞυϨεΛݩʹσʔλ ͷΓऔΓΛ͢Δ૬खΛࢦఆ͢Δ Πϯλʔωοτ
τϥϯεϙʔτͷׂɺσʔλΛదͳΞϓϦέ ʔγϣϯʹৼΓ͚Δ͜ͱ τϥϯεϙʔτ σʔλ σʔλ σʔλ ΞϓϦ" ΞϓϦ#
τϥϯεϙʔτͷׂɺσʔλΛదͳΞϓϦέ ʔγϣϯʹৼΓ͚Δ͜ͱ τϥϯεϙʔτ σʔλ σʔλ σʔλ ΞϓϦ" ΞϓϦ# ϙʔτ൪߸ΛݩʹৼΓ͚
τϥϯεϙʔτͷ௨৴ϓϩτίϧछྨ 5$1ͱ6%1
5$1 5SBOTNJTTJPO$POUSPM1SPUPDPM ૹ͍͍ͬͯʁ ͍͍Αʂ ૹΔͶʂ ίωΫγϣϯܕɹ৴པੑॏࢹ ϝʔϧϑΝΠϧͳͲ࣭ΛٻΊΔ௨৴ʹ༻͢Δ ͪΐͬͱࠞΈ ߹ͬͯΔ ແࣄड͚औͬͨΑʂ
όΠτૹ ΔͶʂ ࠶ૹ͢ΔͶʂ
5$1 5SBOTNJTTJPO$POUSPM1SPUPDPM ૹ͍͍ͬͯʁ ͍͍Αʂ ૹΔͶʂ ίωΫγϣϯܕɹ৴པੑॏࢹ ϝʔϧϑΝΠϧͳͲ࣭ΛٻΊΔ௨৴ʹ༻͢Δ ͪΐͬͱࠞΈ ߹ͬͯΔ ແࣄड͚औͬͨΑʂ
όΠτૹ ΔͶʂ ࠶ૹ͢ΔͶʂ ΣΠϋϯυγΣΠΫ
6%1 6TFS%BUBHSBN1SPUPDPM ͲΜͲΜૹΔΑʂ ίωΫγϣϯϨεܕɹεϐʔυॏࢹ *1ిετϦʔϛϯάαʔϏεͳͲରଟϦΞϧλΠϜੑΛٻΊΔ௨৴ ड͚औΓʹࣦഊ͠ ͓ͯߏ͍ͳ͠ ؾʹͤͣૹΔΑʂ
ৄͪ͘͜͠Β εϥεϥΘ͔ΔωοτϫʔΫ 5$1*1ͷ͖΄Μ
5$1*1͔͚ͬͨͲιέοτʁ
5$1ʹ͓͚Διέοτ௨৴ͷྲྀΕʹ͍ͭͯ ιέοτ௨৴͢ΔػثɺͦΕͧΕͰιέοτͷ࣮͕ඞཁ ίωΫγϣϯͷ४උ ίωΫγϣϯͷཱ֬ σʔλަ ίωΫγϣϯͷղ์
αʔόʔ ΫϥΠΞϯτ 4PDLFU 4PDLFU MJTUFO DPOOFDU SFDFJWF TFOE SFDFJWF TFOE
DMPTF DMPTF ίωΫγϣϯ४උ ίωΫγϣϯཱ֬ σʔλަ ίωΫγϣϯղ๏
ιέοτΫϥΠΞϯτଆ final class SocketClient { init(_ loginUser: LoginUserEntity) { self.loginUser
= loginUser let host = NWEndpoint.Host(CustomUrl.targetIp) let port = NWEndpoint.Port(integerLiteral: CustomUrl.Port) let using: NWParameters = .tcp connection = NWConnection(host: host, port: port, using: using) connection.stateUpdateHandler = {[weak self] newState in guard let strongSelf = self else { return } strongSelf.connectionState = newState switch newState { case .setup: print("HOGE: ηοτΞοϓ”) case .waiting: print("HOGE: ػ") case .preparing: print("HOGE: ४උ") case .ready: print("HOGE: ४උྃ”) private static let productionIp = “xxx.com” static let port: UInt16 = 8_888 J04ΞϓϦ ιέοτॳظԽॲཧ ίωΫγϣϯͷ४උ ίωΫγϣϯཱ֬
ιέοτΫϥΠΞϯτଆ final class SocketClient { init(_ loginUser: LoginUserEntity) { self.loginUser
= loginUser let host = NWEndpoint.Host(CustomUrl.targetIp) let port = NWEndpoint.Port(integerLiteral: ɹɹɹɹɹɹɹɹɹɹɹCustomUrl.port) let using: NWParameters = .tcp connection = NWConnection(host: host, port: port, using: using) connection.stateUpdateHandler = {[weak self] newState in guard let strongSelf = self else { return } strongSelf.connectionState = newState switch newState { case .setup: print("HOGE: ηοτΞοϓ”) case .waiting: print("HOGE: ػ") case .preparing: print("HOGE: ४උ") case .ready: print("HOGE: ४උྃ”) private static let productionIp = “xxx.com” static let port: UInt16 = 8_888 Πϯλʔωοτ τϥϯεϙʔτ τϥϯεϙʔτ ʁʁʁ
ιέοτΫϥΠΞϯτଆ final class SocketClient { init(_ loginUser: LoginUserEntity) { self.loginUser
= loginUser let host = NWEndpoint.Host(CustomUrl.targetIp) let port = NWEndpoint.Port(integerLiteral: ɹɹɹɹɹɹɹɹɹɹɹCustomUrl.port) let using: NWParameters = .tcp connection = NWConnection(host: host, port: port, using: using) connection.stateUpdateHandler = {[weak self] newState in guard let strongSelf = self else { return } strongSelf.connectionState = newState switch newState { case .setup: print("HOGE: ηοτΞοϓ”) case .waiting: print("HOGE: ػ") case .preparing: print("HOGE: ४උ") case .ready: print("HOGE: ४උྃ”) private static let productionIp = “xxx.com” static let port: UInt16 = 8_888 Πϯλʔωοτ τϥϯεϙʔτ τϥϯεϙʔτ ΣΠϋϯυγΣΠΫ
ιέοτΫϥΠΞϯτଆ func send(to receiver: SocketMsgProtocol, text: String, messageType: ChatMessageType, handler:
@escaping (SocketMessage?) -> Void) { ~~~~ } func receive(on connection: NWConnection) { connection.receive(minimumIncompleteLength: 0, maximumLength: Int(UInt32.max)) {[weak self] (data, _, _, error) in guard let text = data?.toStringWithEncodeByUTF8() ~~~ } σʔλަ
ιέοτΫϥΠΞϯτଆ func releaseSocketClient() { socketClient = nil } ɹɹdeinit {
connection.cancel() } ίωΫγϣϯͷղ์
·ͱΊ w 5$1*1ͷٕज़Λͬͯ؆୯ʹσʔλͷΓऔΓΛߦ͑ΔΑ͏ ʹͨ͠ͷ͕ιέοτ w 5$1ͱ6%1ͱ͍͏̎ͭͷ௨৴ϓϩτίϧ͕͋Δ w ࣄͷຊ࣭Λָ͍ͬͯ͘͠͞
͓ΘΓ